3

预期的行为是应用程序将在其处于 ON 状态时一直运行。当应用程序一段时间不活动时,某些手机会将应用程序置于后台模式。我希望应用程序一直运行,即使它处于待机模式(待机模式意味着当我们按下主页按钮时,应用程序将进入后台。它会运行一段时间)。

我找到了以下代码并尝试了

    PowerManager powerManager = (PowerManager) getApplicationContext().getSystemService(POWER_SERVICE);
    String packageName = "org.traccar.client";
    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        Intent i = new Intent();
        if (!powerManager.isIgnoringBatteryOptimizations(packageName)) {
            i.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
            i.setData(Uri.parse("package:" + packageName));
            startActivity(i);
        }
        else{
            i.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
            i.setData(Uri.parse("package:" + packageName));
            startActivity(i);

        }
    }

即使在使用代码后,默认状态也是省电模式(推荐)

一旦打开应用程序,我希望应用程序处于无限制模式,有什么解决方案吗?

4

1 回答 1

1

您使用的代码用于电池优化。设置-->电池-->三点菜单项(...)--->电池优化-->(从列表中选择一个应用程序)--->优化/不优化。

通过选择Don't optimize,您实际上是在绕过Doze,而不是app standby.

另请注意,以编程方式执行此操作可能会导致 Google 将您的应用程序下架。按照我上面描述的路径手动执行它更安全。

更多关于Doze和应用Standby 在这里

于 2018-11-02T09:24:41.880 回答