Android中的app忽略电池优化

记录一个app忽略电池优化的工具类:

/**
 * 忽略电池优化
 */
public void ignoreBatteryOptimization(Activity activity) {

    PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);

    boolean hasIgnored = powerManager.isIgnoringBatteryOptimizations(activity.getPackageName());
    //  判断当前APP是否有加入电池优化的白名单,如果没有,弹出加入电池优化的白名单的设置对话框。
    if(!hasIgnored) {
          Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
        intent.setData(Uri.parse("package:"+activity.getPackageName()));
        startActivity(intent);
    }
}
之后就会弹出一个dialog


记得在manifest文件中配置权限:

<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>

但在360n4手机上,使用电池优化会导致app直接崩溃,原因是没有应用去处理这个intent,应该是360手机阉割了电池优化。

有可能任何应用程序都无法处理发给 startActivity() 的隐式 Intent 。 如果是这样,调用将会失败,应用程序就会崩溃。 为了判断是否存在可接收 Intent 的 Activity ,请调用 Intent 对象的 resolveActivity() 方法。 如果结果为非空,则表示至少有一个应用程序可以处理该 Intent , startActivity() 的调用就是安全的。 如果结果为 null,就不要使用该 Intent。如果可能的话,请关闭那些提交该 Intent 的功能。


其他电池优化可参考博客:http://blog.csdn.net/ada_dengpan/article/details/51108641


  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值