Android - OnPreExecute检查我是否需要先做另一个AsyncTask

时间:2015-12-09 03:01:26

标签: android android-asynctask android-networking

在我的AsyncTask' A'的onPreExecute方法中。我想检查是否需要执行另一个AsyncTask' B'第一。如果我这样做,我想在A的doInBackground之前运行B.

我可以这样做吗?有没有更好的方法来实现这个逻辑?

编辑:让我扩展我的问题。如果我有几个AsyncTasks A,C和D,我想检查是否需要在每个任务中执行B,我该怎么做?本质上我想扩展AsyncTask的功能并从中继承,但是使用AsyncTask中使用的泛型类型会变得棘手。

2 个答案:

答案 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;
}
祝你好运!