ITmob-Ly
发布于 2021-12-13 / 747 阅读
0

Android后台运行限制

isBackgroundRestricted Added in API level 28

查询用户是否为该应用开启了后台限制。
详见: Android Docs

即使设备正在充电,这些限制仍然有效。(Note that these restrictions stay in effect even when the device is charging.)

如果为 true,应用程序尝试执行的任何工作都将在后台受到严格限制。 除非应用程序在前台,否则不会执行jobs和alarms并且无法启动前台服务。

可以通过调用以下方法检查后台活动是否启用:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
    val activityManager = getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager?
    activityManager?.let {
        val restricted = it.isBackgroundRestricted
    }
}

无法直接打开后台活动限制的设置页面来要求用户禁用它,而是只能显示一个描述如何禁用后台活动限制的窗口(分步指导用户怎样设置)

以下Intent打开应用程序的设置页面,用户可以在那里禁用后台限制

Intent(
    Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
    Uri.fromParts("package", packageName, null)
).let {
    startActivity(it);
}