我正在面对一个关于AsyncTasks的排除顺序的问题.
我的问题是:
假设我有2个AsyncTask实现:MyAsyncTask1和MyAsyncTask2
这是以下列方式召集的:
new MyAsyncTask1 ().execute (); new MyAsyncTask2 ().execute ();
是否保证MyAsyncTask1在MyAsyncTask2之前执行?
有一件事是肯定的,因为默认的执行器是SERIAL_EXECUTOR,它们并不执行.
问题在于执行的顺序:哪一个将先执行?
如果执行顺序未确定,那么如何执行AsyncTasks的执行顺序?
我需要的是在MyAsyncTask2之前执行MyAsyncTask1,这并不总是这样,当我在MyAsyncTask2之前调用MyAsyncTask1执行时.
我实际上是一个自定义的活动:
public abstract class CustomActivity extends Activity { @Override protected void onCreate ( Bundle savedInstanceState ) { super.onCreate ( savedInstanceState ); new MyAsyncTask2 ().execute (); } }
另一个继承自定义活动的活动:
public class MainActivity extends CustomActivity { @Override protected void onCreate ( Bundle savedInstanceState ) { new MyAsyncTask1 ().execute (); super.onCreate ( savedInstanceState ); } }
所以如果我使用MainActivity,MyAsyncTask1应该在MyAsyncTask2之前执行,至少这是我需要的行为.