我试图阻止调用异步函数在同一时间运行两次。
我正在调用此函数来填充RecyclerView,有时会发生该函数被调用两次,因此我在recycleler视图中有重复的项目,所以我想阻止该函数在同一个函数中运行两次时间。那可能吗?
wxListCtrl
我在OnResume上调用任务
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
}
}
和按钮ClickListener:
@Override
public void onResume(){
super.onResume();
RefreshV2 RVZ = new RefreshV2();
RVZ.execute();
Log.d("Resuming","yes");
}
答案 0 :(得分:1)
您可以添加一个全局布尔变量,该变量在onPreExecute()
中设置为true,在onPostExecute()
中设置为false。
在doInBackground()
中只检查该变量的状态并决定是否采取行动!