android - 什么时候可以安全地使用 DONT_KILL_APP 禁用组件?
问题描述
我需要以编程方式禁用BroadcastReceiver
接收BOOT_COMPLETED
操作的 a 。下面的代码解决了这个问题:
packageManager.setComponentEnabledSetting(broadCastReceiverName,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
我使用该DONT_KILL_APP
标志来防止系统在更改组件配置后杀死应用程序。问题是该标志的文档DONT_KILL_APP
包含以下摘录:
Be careful when you set this since changing component states can make the containing application's behavior unpredictable.
文本非常模糊,并没有明确说明会发生什么问题或正确的用途是什么。我测试了禁用BroadcastReceiver
它onReceive()
并且没有问题。从 a 中禁用Activity
也可以。让我不确定这个解决方案的原因是文档没有描述使用标志的安全方法。它还说行为是不可预测的。它可能在本地工作,但在生产中存在问题。
有没有人有更多关于使用这个标志的细节,在什么情况下使用它是安全的?
解决方案
推荐阅读
- angularjs - TypeError:无法在 angular.min.js:62 处读取 f (angular.min.js:62) 处未定义的属性 'childNodes'"
- angular - 在拦截器上获取令牌时出错 - 键入“Promise”
>>' 不可分配给类型 'Observable >' - com - 在 VSTO 中获取图片和内容占位符中的 SelectedShape 类型失败
- javascript - 检查每个 id 是否在数组中都有一个现有对象
- c# - Entity Framework 6 连接字符串问题
- php - 为什么我的大字节字符串会覆盖文件顶部的文本?
- mysql - 如何在 MySQL 中获取具有特定行/值的每个人的 ID
- lua - 这个lua代码可以写得更好吗?
- php - 如何找到加载某些元素的文件?
- akka - akka 聚类中的错误