2015-10-11 55 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()只是檢查該變量的狀態,並決定是否採取行動!