2015-10-11 56 views
0

我试图防止在同一时间运行两次异步功能。如何防止在同一时间运行两次异步任务功能

我打电话给这个函数来填充一个RecyclerView,有时它发生的功能被调用了两次,所以我在回收视图中有重复的项目,所以我想阻止函数在同时。那可能吗 ?

private class RefreshV2 extends AsyncTask<Void, Integer, Void> 
{ 

    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     //Start 
    } 


    @Override 
    protected Void doInBackground(Void... arg0) { 

    // Populate the recycler view 
     return null; 
    } 

    @Override 
    protected void onPostExecute(Void result) { 
     // finish 
    } 
} 

,我号召的onResume

@Override 
public void onResume(){ 
    super.onResume(); 
    RefreshV2 RVZ = new RefreshV2(); 
    RVZ.execute(); 
    Log.d("Resuming","yes"); 

} 

和按钮ClickListener任务:

RefreshV2 RVZ = new RefreshV2(); 
     RVZ.execute(); 
+0

请问您可以在哪里执行此任务的代码 – abhishesh

+0

已更新我的代码 –

回答

1

您可以添加该设置为true在onPreExecute()一个全局布尔变量和在onPostExecute()中设置为false。 在doInBackground()只是检查该变量的状态,并决定是否采取行动!