Yur*_*rov 5 java multithreading android android-asynctask
我有许多AsyncTask实例正在从服务器下载一些不同的内容。它们在执行器上运行:
final GetStationsTask getStationsTask = new GetStationsTask();
getStationsTask
.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, URL_STATIONS);
Run Code Online (Sandbox Code Playgroud)
目前我有 3 个子类AsyncTask,但这个数字不会保持不变。我还对由于不同原因未完成的任务进行了某种重试,如果至少有一个任务没有正确完成(未收到数据),我想从头开始下载所有内容:
// mHandler = new Handler(); // an instance variable
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
if (!allDataSet()) {
// here I want to cancel the tasks that are still running
// and rerun all of them
}
}
}, 30000); // I give all the tasks 30 seconds to complete
Run Code Online (Sandbox Code Playgroud)
为此,我想我需要知道哪些任务当前正在运行,哪些任务已正确完成,哪些任务被取消,因为如果所有任务都重新启动,我需要先取消正在运行的任务,以防止多次接收数据. 任何想法如何解决它?
| 归档时间: |
|
| 查看次数: |
1801 次 |
| 最近记录: |