5

我正在使用 FusedLocationProvider API 向 PendingIntent 注册一些地理围栏,当我的应用程序通过地理围栏事件启动(应用程序被手动终止以触发此行为)时,我启动了一个后台服务来做一些工作。

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

是 PendingIntents 唤醒应用程序的期望行为还是某种错误,然后它被视为白名单,即使这些 Intents 不是用于通知(即用户可以看到的任何内容)。

或者这些意图属于“接收广播,例如 SMS/MMS 消息”的类别。如文档中所述

4

1 回答 1

0

这是预览中的一些错误。

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

所以你的服务确实传递了 onDestroy 回调,但你不会在那里停止你的线程并继续在后台工作。它只会在整个应用程序的进程被杀死时停止,因为 Android 认为它不再重要了。

于 2017-08-20T17:37:26.573 回答