gpt4 book ai didi

android - 广播充电器在 Android O 中断开连接

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:01:07 25 4
gpt4 key购买 nike

现在 Android O 的最终 API 已经发布,下面的广播都不是 whitelisted我有以下问题:

在我的应用程序(目标 API 25)中,我目前有一个 BroadcastReceiver,它监听 ACTION_POWER_CONNECTEDACTION_POWER_DISCONNECTED 的系统事件。现在我想更新我的应用程序以针对 Android O,但此版本带来了巨大的 change在广播行为中:

Apps that target Android O can no longer register broadcast receivers for implicit broadcasts in their manifest. An implicit broadcast is a broadcast that does not target that app specifically.

由于这两个广播都是隐式的,我只能通过 Context.registerReceiver() 方法注册它们,但随之而来的问题是:一旦我的应用进程被系统终止或一旦系统清除我的应用程序内存(由于设备内存不足),广播注册就会丢失。

为避免此问题,我可以将 JobScheduler API 与 setRequiresCharging 方法一起用于 ACTION_POWER_CONNECTED 但用于 ACTION_POWER_DISCONNECTED我必须使用 registerReceiver 方法。

由于我的应用程序控制设备的音量(基于这些事件),所以不要错过任何这些事件非常重要。那么我如何才能安全地监听 Android O 中断开连接的电源事件呢?

顺便说一句。我对 WIFI 断开事件有同样的问题。

编辑:我很乐意在没有前台服务通知的情况下执行此操作

最佳答案

作业可以延迟,不受系统的任何限制。 setOverrideDeadline 方法仅使用尽力而为策略,因此在这种情况下,您可以将目标 SDK 保持为 25 或使用前台服务。 Foregournd 服务可以被系统杀死,但概率非常低。

关于android - 广播充电器在 Android O 中断开连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44488482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com