Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android AsyncTask – 执行顺序大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在面对一个关于AsyncTasks的排除顺序的问题.

我的问题是:

假设我有2个AsyncTask实现:MyAsyncTask1和MyAsyncTask2

这是以下列方式召集的:

new MyAsyncTask1 ().execute ();
new MyAsyncTask2 ().execute ();

是否保证MyAsyncTask1在MyAsyncTask2之前执行?
有一件事是肯定的,因为认的执行器是seriaL_EXECUTOR,它们并不执行.
问题在于执行的顺序:哪一个将先执行?

如果执行顺序未确定,那么如何执行AsyncTasks的执行顺序?

我需要的是在MyAsyncTask2之前执行MyAsyncTask1,这并不总是这样,当我在MyAsyncTask2之前@L_645_4@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之前执行,至少这是我需要的行为.

@L_607_9@

确保两个线程(这是AsyncTasks基本上是这样)的唯一方法是按照你想要的顺序执行,是在第一个线程完成时启动第二个线程.

你的情况下,为了保持实现抽象,并不需要在AsyncTask1的onPostExecute中实际调用AsyncTask2(Anup和Sanket建议的方式,如果要混合它们也是可以的),使AsyncTask1调用super.executeAsyncTask2(),其中executeAsyncTask2()是您的CustomActivity中启动第二个AsyncTask的方法

大佬总结

以上是大佬教程为你收集整理的Android AsyncTask – 执行顺序全部内容,希望文章能够帮你解决Android AsyncTask – 执行顺序所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。