mau*_*les 10 java android background-process
我有一个服务,用于发送在后台运行的http请求,并在"正常模式"下正常工作.问题是当我将手机置于"省电模式"时,该服务无法正常工作.但是,像Whatsapp这样的应用仍然有效.你知道发生了什么吗?
诸如Whatsapp之类的移动应用程序必须请求权限才能将其从打ze /省电和应用待机模式中排除。
可以通过在“设置”>“电池”>“电池优化”中配置白名单来手动配置此功能。
另外,从23 API,你可以使用的权限模型,要求用户白名单他们(指此)。通过API,您还可以通过调用isIgnoringBatteryOptimizations()检查您的应用当前是否在白名单上
但是,您需要满足某些条件才能将自己列入白名单。否则,在维护Google Play商店中的应用程序时会遇到问题。
但是,诸如Whatsapp之类的Messenger应用程序大多是通过高优先级推送通知触发的,因此即使未运行后台进程,它们也更有可能处于活动状态。
添加权限
<uses-permission
android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>
Run Code Online (Sandbox Code Playgroud)
请求将您的应用列入白名单
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
Intent intent = new Intent();
String packageName = getPackageName();
PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE);
if (!pm.isIgnoringBatteryOptimizations(packageName)) {
intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
intent.setData(Uri.parse("package:" + packageName));
startActivity(intent);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4128 次 |
| 最近记录: |