在我的AsyncTask' A'的onPreExecute方法中。我想检查是否需要执行另一个AsyncTask' B'第一。如果我这样做,我想在A的doInBackground之前运行B.
我可以这样做吗?有没有更好的方法来实现这个逻辑?
编辑:让我扩展我的问题。如果我有几个AsyncTasks A,C和D,我想检查是否需要在每个任务中执行B,我该怎么做?本质上我想扩展AsyncTask的功能并从中继承,但是使用AsyncTask中使用的泛型类型会变得棘手。
答案 0 :(得分:0)
AsyncTask是独立的。一旦你运行它,你就无法取回它。 除非... 您可以创建一个列表(或地图)来管理这些任务。
例如,
select * from
(select *, row_number() over (partition by user_id) as row_number
from photos order by row_number desc
)as rows
where row_number = 1
and deleted = false
在onPreExecute中,您可以在地图中检查任务。
答案 1 :(得分:0)
在方法doInBackground任务中运行同步,然后您可以在 doInBackground 方法中进行验证:
doInBackground(...){
if(needExecuteTaskB){
//Task B...
}
//Task A...
return;
}
祝你好运!