安卓 O,后台服务运行超过 30 分钟,为什么?

5
我正在使用FusedLocationProvider API来注册一些Geofences,并使用PendingIntent,当我的应用程序启动时(手动杀死应用程序以触发此行为),通过Geofence事件,我启动一个后台服务来执行一些工作。
在这个服务中,我创建了一个单独的后台线程来执行一些长时间运行的任务,并获取唤醒锁,以确保我的任务完成。即使不应该如此,服务会在更长的时间内运行(30-50分钟)。根据我对Android O最近更改的理解,它不应该被列入白名单并保持自身运行状态。
这是期望的行为还是PendingIntents唤醒应用程序,并且尽管这些Intents不是用于通知(即用户可以看到的任何内容),但它仍然被视为已列入白名单并保持运行?或者这些意图属于“接收广播,例如SMS / MMS消息。”如文档在这里提到的那样。

在Google问题跟踪器上,我有同样的问题,希望有人能比Google更快地回答它 :) https://issuetracker.google.com/issues/38162258 - Waqas
1个回答

0

可能是预览中出现了一些错误。

但是,你确定你的服务在1分钟后还在运行吗? 你创建的应用程序进程和后台线程将/可能会在服务被销毁后继续运行。

因此,你的服务确实通过了onDestroy回调,但你没有在其中停止线程并继续在后台执行任务。只有当整个应用程序的进程因为Android认为它不再重要而被杀死时,它才会停止。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接