我有一个通过NotificationListenerService监听通知的应用程序。我的应用程序在打ze模式下均能幸存,并且几乎可以在任何手机上待机(如果设置正确,例如,异常或前台服务)。

然后是华为和小米,他们对Android进行了自己的修改,以“延长电池生命周期”。这些可能会严重影响后台运行的应用程序,因此一两个星期后必须重新安装该应用程序。即使清除数据也不会“解冻”该应用程序。即使是其自身“优化”的异常(exception)也无法可靠地解决此问题。仅完全禁用其所有优化,例如启用“高性能模式”可能会解决此问题。但是用户不想禁用这些选项。

您如何处理这些案件?以及如何阻止制造商停止与核心Android发生冲突?更不用说有趣的ANR和Zygote中的崩溃:(

最佳答案



是的,小米,华为和其他一些制造商拥有自己的“省电模式”或“安全性”层,它们会杀死或限制后台运行的应用程序,以提高安全性/电池备份,除非用户在相关设备设置中将您的应用程序列入了白名单。

我发现小米的原因是它们将知名应用程序(例如Facebook,Whatsapp等)列入白名单。但是您不能要求小米将您的应用程序列入白名单。



这些制造商应用程序仅终止您的应用程序过程。因此,您的应用应以这样的方式运行:在任何时候终止都不应创建不一致的状态。

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

让我知道是否找到一个;)

android - 如何处理华为和小米的 "battery optimizations"-LMLPHP
android - 如何处理华为和小米的 "battery optimizations"-LMLPHP

10-08 03:26