我正在使用 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/