ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

android-多个AsyncTask的串行执行

2019-11-02 10:27:02  阅读:218  来源: 互联网

标签:executor android-asynctask android-2-2-froyo android


有谁知道如何轻松地将多个对AsyncTask执行的调用安排在队列或其他内容中,然后以串行方式执行它们?

我希望被调用的异步任务在完成之前等待一会儿,但是即使我测试了当前正在执行的任务的状态,我似乎也无法完成.

任何想法如何解决这个问题?我已经看到在蜂窝API中有一个带有SERIAL_EXECUTOR的executeExecuteExecutor()方法,我想它实现了我所描述的.但是,我不是为蜂窝开发的.

谢谢!

解决方法:

您可以尝试IntentService.从参考:

IntentService is a base class for Services that handle asynchronous requests (expressed as Intents) on demand. Clients send requests through startService(Intent) calls; the service is started as needed, handles each Intent in turn using a worker thread, and stops itself when it runs out of work.

我从广播接收机运行服务,如下所示:

    // Now let the service module do the rest

    Intent serviceIntent = new Intent(context, Service.class);
    serviceIntent.putExtra(GC.EXTRA_SERVICE_DATA, serviceData);
    ComponentName compName = context.startService(serviceIntent)

它按广告宣传工作.请求被序列化罚款.该服务在收到请求时启动.在处理完最后一个请求之后,该服务停止了.请求被处理为FIFO.

我通过右键单击源包名称并选择“新建/类”来创建了intentservice.我使用了intentservice作为超类.构造函数主张“名称”.我将其更改为:

    public XxxService() {super("XxxService");}

该服务的所有代码都放入onHandleIntent函数中.我不必使用任何其他@Override函数.

希望这就是你想要的…

注意:变量“上下文”是onReceive中传递的参数.我将代码中的名称从XxxxService更改为“ Service”或“ service”.最后,我在所有项目中都创建了一个称为GC的类.它是全局常量的容器类. GC.EXTRA_SERVICE_DATA是定义附加键的全局字符串.

标签:executor,android-asynctask,android-2-2-froyo,android
来源: https://codeday.me/bug/20191102/1990808.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有