请教关于android后台任务和服务的问题

============问题描述============


      最近在做一个应用,实时检测网络信号,日志是系统自动抓取,一个服务检测日志达到一定条件,开始压缩归档,我用asynctask去检测网络信号,将信号值通过progress更新到前台,应用启动后,开启一个服务去检测日志情况。现在的问题是日志达到条件开始一压缩时,会阻塞前台信号更新,一个是服务,一个是后台任务,照说不会阻塞主线程,难道只能有一个进程给手机发消息么?希望大家多指教~-~

============解决方案1============


aidl呗,挺好用,,,

============解决方案2============


虽说asynctask是后台任务,但是也不适合做耗时长的任务

============解决方案3============


官方文档给的说明是,asynctask并不构建一个通用线程框架,而且不能执行耗时操作,最多执行数秒的时间。说明asynctask和一个普通的线程是不一样的。

============解决方案4============


引用 4 楼 jeky198306 的回复:
多谢指导,请问这个有好的方式处理么?搞了aidl要安装两个应用,用户体验不好


Quote: 引用 3 楼 lionfresh 的回复:

官方文档给的说明是,asynctask并不构建一个通用线程框架,而且不能执行耗时操作,最多执行数秒的时间。说明asynctask和一个普通的线程是不一样的。


你也可以在另一个服务中检测网络信号,通过广播来通知UI线程更新界面。

============解决方案5============


service运行在主线程中,service会阻塞 ui, asyTask 的doInBackground 是另开线程的。

============解决方案6============


积分怎么得??????????????

posted on 2014-10-21 23:41  android基础教程  阅读(178)  评论(0编辑  收藏  举报

导航

我要啦免费统计