PackageManager.getComponentEnabledSettings()在冷启动之间是否持续存在? [英] Is PackageManager.getComponentEnabledSettings() persistent between cold starts?
问题描述
如果我使用下面的代码禁用了AndroidManifest.xml中定义的静态BroadcastReceiver,重新启动后是否会重新启用它?似乎不是,但是文档没有说是否应该.
If I use the code below to disable a static BroadcastReceiver defined in AndroidManifest.xml, will it be re-enabled after a reboot? It doesn't appear to be but the docs don't say whether it should.
final ComponentName compName =
new ComponentName(context,
MyBroadcastReceiver.class);
context.getPackageManager().setComponentEnabledSetting(
compName,
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
预先感谢...
推荐答案
PackageManager.getComponentEnabledSettings()在冷启动之间是否持久?
Is PackageManager.getComponentEnabledSettings() persistent between cold starts?
是的.它将在应用程序卸载/重新安装时重置.如果您用setComponentEnabledSetting()
自己重置,它将被重置.如果具有超级用户特权的东西将其重置,则它将被重置(例如,该设备可能具有一些用于控制ACTION_BOOT_COMPLETED
的管理器应用).而且我不确定在应用升级时会发生什么,因为我还没有尝试过这种情况.否则,它应该保持持久性.
Yes. It will be reset on an application uninstall/reinstall. It will be reset if you reset it yourself with setComponentEnabledSetting()
. It'll be reset if something with superuser privileges resets it (e.g., the device might have some manager app for controlling ACTION_BOOT_COMPLETED
). And I'm not sure what happens on an app upgrade, as I haven't tried that scenario. Otherwise, it should stay persistent.
如果我使用以下代码禁用AndroidManifest.xml中定义的静态BroadcastReceiver,重启后是否会重新启用它?
If I use the code below to disable a static BroadcastReceiver defined in AndroidManifest.xml, will it be re-enabled after a reboot?
否.
这篇关于PackageManager.getComponentEnabledSettings()在冷启动之间是否持续存在?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!