android - 所有异步任务完成后如何做某事?

标签 android asynchronous

我正在使用 AsyncTask 下载一些文件,并希望在所有任务完成后执行某些操作。

有什么简单的方法可以做到这一点吗?

最佳答案

跟踪您正在运行的异步任务数量,并在总数为 0 时执行某些操作。

import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

    public int numOfTasks = 0;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
    public void addTask(){
        numOfTasks++;
    }

    public void removeTask(){
        numOfTasks--;
    }

    public void allTasksComplete(){

        if(numOfTasks ==0){
            //do what you want to do if all tasks are finished
        }

    }

    class RequestTask extends AsyncTask<String, String, String>{

        @Override
        protected String doInBackground(String... uri) {

            String responseString = "";
            return responseString;
        }

         @Override
            protected void onPreExecute() 
            {
                    addTask(); // adds one to task count.
                    super.onPreExecute();

            }

        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);
            removeTask(); // subtracts one from task count.
            allTasksComplete(); // checks to see if all tasks are done...  task count is 0
            }
        }
    }

关于android - 所有异步任务完成后如何做某事?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13022597/

相关文章:

java - 将 JFileChooser 添加到 Android studio

android - 在 TabHost 上按下 MonoDroid MVVMCross 句柄后退按钮

android - MediaStore.Audio 检索包含音频的所有目录的列表

multithreading - 如何避免异步等待

android - 当android中发生一个触摸事件时,以编程方式执行另一个触摸事件

android - 将 aSmack 0.8.3 用于 XMPP 聊天应用程序时出现 NoSuchAlgorithmException

javascript - 如何用异步代码实现顺序迭代

javascript - 用于顺序执行同步和异步函数的 jQuery Deferred 和 Promise

database - Swift 2 - 如何在异步方法之后运行代码?

javascript - 异步 redux 函数如何工作?