在android4.0中按顺序执行异步任务

在android4.0中按顺序执行异步任务,第1张

概述我已经实现了2个asyn任务,我使用的是android4.0.其中一个asyntask连续执行,第二个根据需求执行(可能是多个时间).例如.classAsynTask1exetendsAsyncTask<Void,Bitmap,Void>{protectedVoiddoInBackground(Void...params){while(true){publis

我已经实现了2个asyn任务,我使用的是android4.0.其中一个asyntask连续执行,第二个根据需求执行(可能是多个时间).
例如.

class AsynTask1 exetends AsyncTask<VoID, Bitmap, VoID>{    protected VoID doInBackground(VoID... params) {        while(true){            publishProgress(bmp);        }    }}class AsynTask2 extends AsyncTask<String, VoID,VoID>{    protected VoID doInBackground(String... params){        System.out.println(params[0])    }}

在活动课上

class MainActivity extends Activity{    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        new AsynTask1().execute();        int i=0;        while(i<100)        {            if(i%2==0)            new AsynTask2().execute("no is even"+i);            i++        }    }}     

在上面的例子中,不执行AsynTask2.

如果尝试使用executeOnExecutor(AsyncTask.THREAD_POol_Executor,params),则执行asyntask并从AsynTask2获取打印消息,但这些消息不是按顺序排列的(如0 2 6 4 10 8 12 14 ….).

有没有办法连续执行AsynTask1和顺序顺序的AsynTask2,以防止顺序(如0 2 4 6 8 10 12 14 ….).

谢谢&问候
微型.

解决方法:

使用SERIAL_EXECUTOR for Asynctask2

 new AsynTask2().executeOnExecutor(AsyncTask.SERIAL_EXECUTOR ,"no is even"+i)

编辑:
用于Asynctask1,因此不使用相同的执行程序

 new AsynTask1().executeOnExecutor(AsyncTask.THREAD_POol_Executor,params);
总结

以上是内存溢出为你收集整理的在android4.0中按顺序执行异步任务全部内容,希望文章能够帮你解决在android4.0中按顺序执行异步任务所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1097885.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存