其他分享
首页 > 其他分享> > android – 对服务执行长时间运行的操作

android – 对服务执行长时间运行的操作

作者:互联网

我正在构建一个具有服务的应用程序.我知道所有应用程序组件都在同一个UI进程中运行,至少你在清单中指定它.所以为了避免ANR的消息,我有三种方法.

>在清单中指定服务以在单独的进程中运行
 android:process =“:remote”但是我已经阅读了一些StackOverflow的帖子
 说它不是一个好主意,因为它消耗了大量的电池和CPU处理.
 我真的很尊重,因为那些帖子来自可信赖的人.
>使用IntentService.这可能是一个很好的出路.但我需要我的服务运行即使
 活动不可见.因为我需要服务不断检查新服务的Web服务
 来自其他用户的消息并通知通知.是否可以使用
 一个IntentService?这是一个优雅的解决方案.
>使用本地服务.只是从清单文件中删除android:process =“:remote”属性.
 但我得到一些…… OnMainThreadException错误.这意味着我需要创建一个特殊的
 线程执行那些长时间运行的操作或使用AsyncTask,

也许有另一种方法可以做到这一点.请告诉我,如何对服务执行长期运行操作.真的很有必要.

谢谢.

解决方法:

首先,我们接受有两个部分:活动部分(网络)和下一个活动部分之前的一些睡眠部分.我认为您可以使用普通的本地IntentService来处理活动部件.完成后,每个活动部件都应使用AlarmManager重新安排下一个活动部件.这种方法可确保您的应用在睡眠部分时不会消耗资源.你是对的 – 一旦IntentService得到一个结果呈现给用户,它就可以使用Notification.

标签:android-handler,android,worker-thread
来源: https://codeday.me/bug/20191002/1845191.html