当用户为 Android 中的应用程序切换“后台限制”时,是否有系统广播?

Chr*_*hua 2 android android-8.0-oreo

要在 Android 手机 (Oreo+) 中切换“后台限制”,用户可以转到:应用设置 -> 高级 -> 电池 -> 后台限制。

如果禁用,当应用程序处于后台时,应用程序将无法再运行后台服务。这将节省电池。

但是,当应用程序返回前台时,这会导致崩溃。

我在 Android 文档https://developer.android.com/reference/android/content/Intent.html 中找不到用于侦听此事件的意图广播操作

有谁知道我如何检测此权限更改?

Rog*_*ien 5

你可以使用这个 API https://developer.android.com/reference/android/app/ActivityManager#isBackgroundRestricted()

    ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
        Log.d("TEST", "onCreate: activityManager.isBackgroundRestricted() = " + activityManager.isBackgroundRestricted());
    }
Run Code Online (Sandbox Code Playgroud)

并向用户显示某种对话框,告诉他们他们需要将其改回