我目前在我的活动中使用AlarmManager每X分钟启动一次服务。
它似乎有效,但看起来该服务最初在主线程上运行,我认为这会导致随机 ANR。(这是使用一些代码片段来检查 looper 确定的,返回的唯一 true 值是服务启动时(然后启动 Asynctasks))
如何使用警报管理器在其自己的线程上启动服务?
还是我应该以其他方式启动此重复服务?
如何使用警报管理器在其自己的线程上启动服务?
AlarmManager
不会影响您的线程。您需要安排服务在后台线程上执行其工作。最简单的方法是扩展IntentService
并将您的工作放在onHandleIntent()
.