【发布时间】:2017-08-19 09:47:00
【问题描述】:
我有一个需要忽略打盹模式的应用程序,它要求用户以通常的方式将其添加到未优化的应用程序列表中:
Intent intent = new Intent();
String packageName = getPackageName();
intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
intent.setData(Uri.parse("package:" + packageName));
startActivityForResult(intent, BATTERY_OPTIMIZATION_REQUEST);
在onActivityResult() 我检查他是否真的将它添加到“未优化”列表中。到目前为止一切顺利。我的应用程序启动它的服务,该服务获取并持有 WAKE_LOCK 并永久运行(是的,我知道这会耗尽电池,但我的用例需要它)。
我的问题是,稍后用户可能会决定从“未优化”列表中删除该应用。
我的问题:
是否有我可以注册的广播以获得电池优化设置更改的通知?
如果没有,除了定期使用
isIgnoringBatteryOptimizations()检查其状态之外,是否还有其他方法可以检测我的应用的电池优化设置已更改@
最初我认为在这种情况下应用程序将被停止(就像权限被删除时一样),但事实并非如此。
【问题讨论】:
-
@Tigger 这将简单地返回“android.settings.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS”,这是我刚刚用
setAction()设置的。不是吗? -
你能解决这个问题吗?
-
@user1002448 不,到目前为止我无法解决它
-
您如何检查应用是否在“未优化”列表中?
-
@user1002448 isIgnoringBatteryOptimizations()
标签: android broadcastreceiver battery android-powermanager