背景服务在激进的打盹模式和7.0中的正常打盹模式中关闭

时间:2017-01-18 05:37:13

标签: android

我有一个后台服务,以某种方式杀死所有设备进入打盹模式。我试图使它成为STICKY,设置一个警报来启动服务,如果它从任务中删除或被杀死甚至使用setAndAllowWhileIdle()来触发意图启动服务都是徒劳的。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我想出的可能解决方案-

  • 请用户允许您的应用忽略电池优化。 这是代码段-
    @TargetApi(23)
    void ignoreBatteryOptimizations() {

        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
            return;
        }


        try {
            Intent intent = new Intent();
            String packageName = ctx.getPackageName();
            PowerManager pm = (PowerManager) ctx.getSystemService(Context.POWER_SERVICE);
            if (!pm.isIgnoringBatteryOptimizations(packageName)) {
              //Do something
            }

        } catch (Exception ex) {
            Log.wtf("IGNORE:BATTERY", ex);
        }


    }
  • 使用上述修复程序启动前台服务,以确保正常运行时间为99%。