android - 我能知道用户何时/是否在 API 级别 26(Oreo) 中禁用了 "background activity"吗?

标签 android android-service android-8.0-oreo

我的目标不是 26,但我想知道用户何时禁用“后台 Activity ”,如 documentation 中所述(在发生时显示通知)。

有什么我可以听的 Intent 吗?或其他一些以编程方式知道它当前是否被禁用的方法?

最佳答案

我设法找到一种方法来了解用户是否禁用了“后台 Activity ”。 不确定它是否是最佳解决方案,但看起来它正在运行:

在我的粘性服务的 onDestroy 中,我安排了一个有时间限制的工作(使用 JobScheduler)。

当作业运行时,我检查我的粘性服务是否仍在被销毁,并且没有重新启动。 如果是这种情况,我会尝试从作业中启动服务,并检查是否成功:

ComponentName componentName = startService(serviceIntent);
if(componentName == null){
    // we could not start the service, so user probably disabled the background activity
}

关于android - 我能知道用户何时/是否在 API 级别 26(Oreo) 中禁用了 "background activity"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46031547/

相关文章:

android - 操作栏仅在搜索 View 旁边显示一项

没有 GUI 的 Android Activity

android - 在没有主 Activity 的情况下启动 Android 应用程序并在启动应用程序时启动服务

android - 当应用程序从最近的应用程序列表中清除时,后台服务在 android nougat 和 oreo 中停止

android - 在相机和图库之间进行选择以进行图像选择

java - 多张图片上传 OOM 问题

android - 奥利奥无法更改语言

android - 如何使用支持库 26 在 AlertDialog 中设置自定义字体

android - log.d 不适用于 Android 服务(Delphi Berlin)

Android区分App-In-Background和旋转事件