PackageManager.getComponentEnabledSettings() 在冷启动之间是不是持久?
Posted
技术标签:
【中文标题】PackageManager.getComponentEnabledSettings() 在冷启动之间是不是持久?【英文标题】:Is PackageManager.getComponentEnabledSettings() persistent between cold starts?PackageManager.getComponentEnabledSettings() 在冷启动之间是否持久? 【发布时间】:2014-05-21 21:35:53 【问题描述】:如果我使用下面的代码禁用 androidManifest.xml 中定义的静态 BroadcastReceiver,它会在重启后重新启用吗?似乎不是,但文档没有说是否应该。
final ComponentName compName =
new ComponentName(context,
MyBroadcastReceiver.class);
context.getPackageManager().setComponentEnabledSetting(
compName,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
提前谢谢...
【问题讨论】:
【参考方案1】:PackageManager.getComponentEnabledSettings() 在冷启动之间是否持续存在?
是的。它将在应用程序卸载/重新安装时重置。如果您使用setComponentEnabledSetting()
自行重置,它将被重置。如果具有超级用户权限的东西将其重置(例如,设备可能有一些用于控制ACTION_BOOT_COMPLETED
的管理器应用程序),它将被重置。而且我不确定应用升级会发生什么,因为我没有尝试过这种情况。否则,它应该保持持久性。
如果我使用下面的代码禁用 AndroidManifest.xml 中定义的静态 BroadcastReceiver,是否会在重启后重新启用?
没有。
【讨论】:
以上是关于PackageManager.getComponentEnabledSettings() 在冷启动之间是不是持久?的主要内容,如果未能解决你的问题,请参考以下文章