如何确保AsyncTask仅执行一次?

时间:2018-12-10 13:57:26

标签: android android-asynctask

我创建了一个执行api调用的AsyncTask。 我正在Activity的OnResume方法中使用for循环创建多个AsyncTask。

  

for(int i=0; i<createPostPojoArrayList.size(); i++) { CreatePostPojo createPostPojo = createPostPojoArrayList.get(i); DownloadTask downloadTask = new DownloadTask( i, post_recyclerview,createPostPojo, GlobalVariables.mActivity ); downloadTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,input); }

有时候api AsycnTask已经在运行,并且当我在OnResume方法上启动asyncTask时,它执行了两次

  • 有什么办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

执行此操作的传统方法是装载程序。更现代的解决方案是LiveData和ViewModels的组合。 https://medium.com/androiddevelopers/lifecycle-aware-data-loading-with-android-architecture-components-f95484159de4为后者提供了不错的实现。