如何解决后台服务在Android R中以省电模式停止
我编写了一个Android应用程序,该应用程序通过更改电量级别来检查电池电量,并在电量达到特定值时发出警报。 我在应用程序中使用了广播接收器和后台服务。 它在所有android版本中均可正常运行,但在打开省电模式时,android R服务会停止。 我在具有不同android版本的几个模拟器和真实设备上测试了我的应用程序,并且可以正常运行,但在android R中存在问题。 有没有办法防止服务停止?
我的服务类别:
00 00 44 07
解决方法
Google 对 Android 8 施加了限制以优化电池。 即使在使用服务时,这也会限制后台工作。 我找到了解决这个问题的方法:使用 PowerManager。
添加清单权限:
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
并将以下代码添加到您的活动中:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
String packageName = context.getPackageName();
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
if (!pm.isIgnoringBatteryOptimizations(packageName)) {
Intent intent = new Intent();
intent.setAction(android.provider.Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setData(Uri.parse("package:" + packageName));
context.startActivity(intent);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。