【问题标题】:How to deal with Huawei's and Xiaomi's "battery optimizations"如何应对华为和小米的“电池优化”
【发布时间】:2018-04-19 03:13:10
【问题描述】:

我有一个通过NotificationListenerService 监听通知的应用程序。我的应用在几乎任何手机上都能在打盹模式和应用待机状态下存活(如果设置正确,例如异常或前台服务)。

然后是华为和小米,他们对 Android 进行了自己的修改,以“提高电池寿命”。这些可能会严重干扰后台运行的应用程序,以至于一两周后必须重新安装应用程序。即使清除数据也不会“解冻”应用程序。即使是他们自己的“优化”的例外也不能可靠地解决这个问题。仅完全禁用所有优化,例如启用“高性能模式”可能会解决此问题。但用户不想禁用这些选项。

您如何处理这些情况?我们如何才能阻止制造商停止搞乱核心 Android?更不用说Zygote 中有趣的 ANR 和崩溃了 :(

【问题讨论】:

    标签: android android-service huawei-mobile-services android-doze android-doze-and-standby


    【解决方案1】:

    然后是华为和小米对 Android 进行了自己的修改,以“提高电池寿命”。

    是的,小米、华为和其他一些制造商都有自己的“电池保护程序”或“安全性”层,可以杀死或限制后台运行的应用程序以提高安全性/电池备份,除非用户将您的应用程序列入白名单相关设备设置。

    我发现小米将 Facebook、Whatsapp 等知名应用列入白名单。但你不能要求小米将你的应用列入白名单。

    这些可能会严重影响后台运行的应用程序,以至于一两周后必须重新安装应用程序。即使清除数据也不会“解冻”应用程序。

    这些制造商应用只会终止您的应用进程。因此,您的应用的行为方式应确保在任何时候终止都不会产生不一致的状态。

    此外,您始终可以在安装后向用户显示一个弹出窗口,要求他/她将您的应用列入省电模式。在小米中,用户需要选择“不限制后台活动”并为您的应用启用“自动启动”。据我所知,没有其他解决方案。

    如果你找到了请告诉我;)

    【讨论】:

    • 根据我自己的测试,我知道他们的白名单不能可靠地工作,尤其是小米。问题是许多用户不知道什么是省电模式或白名单,他们给出了不好的评价并且从不回复回复。我记得两年前,甚至 Viber 都不在他们的自动白名单上(现在是),并且在应用程序最小化的那一刻它就停止了工作。在后台终止应用程序不是问题,问题是应用程序永远不会自行重新启动,这在纯 Android 上应该如此。
    • 我宁愿显示一个弹出窗口,告诉我的用户购买一部真手机。
    • 哈哈,我也有同感……但问题是小米设备在市场上被广泛使用,我们无能为力。
    • 我了解到,如果要求您的用户将您的应用列入白名单,您的应用会在 Google Play 中被暂停...
    • 您所听到的肯定是关于“忽略电池优化”权限的。此权限仅适用于此处提到的某些用例:developer.android.com/training/monitoring-device-state/…。对于答案中讨论的内容,谷歌不介意您要求用户做什么。提示用户将您的应用列入白名单是必要的,否则您将无法发送推送通知或处理任何内容。当应用被杀死时,不会向您发送任何广播等。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 2021-03-15
    • 2019-06-02
    • 2021-09-19
    • 2017-05-26
    • 1970-01-01
    • 2017-05-04
    相关资源
    最近更新 更多