我正在使用FusedLocationProvider API向PendingIntent注册一些Geofences,当我的应用程序启动时(app被手动杀死以触发此行为)通过Geofence事件,我启动后台服务来做一些工作。
在这个服务中,我创建了一个单独的后台线程来执行一些长时间运行的任务,我获得了一个唤醒锁,这样我就可以确保我的任务完成了。服务保持运行更长的时间(30 - 50分钟),即使它不应该。根据我对Android O最近更改的理解,它不应该是白名单并且保持自己运行更长的时间。
PendingIntents唤醒应用程序是否需要行为或某种错误,然后将其视为白名单,即使这些意图不是通知(即用户可以看到的任何内容)。
或者这些意图属于“接收广播,例如短信/彩信”。如上所述here in documentation
答案 0 :(得分:0)
我在预览中遇到了一些错误。
但是,你确定你的服务在1分钟后运行吗? 您的应用程序进程和后台线程即使在服务被销毁后也会运行。
所以你的服务确实传递了onDestroy回调,但是你不会在那里停止你的线程并继续在后台工作。它只会在整个应用程序的进程被杀死时停止,因为Android决定它不再重要。