4

我正在使用FusedLocationProvider API向PendingIntent注册一些Geofences,当我的应用程序启动(应用程序被手动杀死以触发此行为)时,我通过Geofence事件启动后台服务来完成一些工作。Android O,后台服务运行超过30分钟。为什么?

在此服务中,我创建了一个单独的后台线程来执行一些长时间运行的任务,并获得唤醒锁,以便确保我的任务已完成。即使不应该,服务也会继续运行更长时间(30-50分钟)。根据我对Android O近期变化的理解,它不应该被列入白名单并保持运行更长时间。

它是期望的行为还是某种与PendingIntents唤醒应用程序的错误,然后是即使这些意图不是用于通知(即用户可以看到的任何内容),仍然像白名单一样对待。

或者这些意图属于“接收广播,如SMS/MMS消息”类别。如上所述here in documentation

+0

对谷歌问题跟踪器的同样的问题,我希望有人能够比谷歌快速回答:) https://issuetracker.google.com/issues/38162258 – Waqas

回答

0

这是我在预览中的一些错误。

但是,您确定您的服务在1分钟后运行吗? 即使在服务被销毁后,您所做的应用程序进程和后台线程也可以运行。

因此,您的服务确实会传递onDestroy回调函数,但是您不会停止您的线程并继续在后台执行工作。它只会在整个应用程序的进程被终止时停止,因为Android认为它不再重要。