PackageManager.getComponentEnabledSettings()在冷启动之间是否持久存在?

6
如果我使用下面的代码来禁用在AndroidManifest.xml中定义的静态广播接收器,那么它会在重启后重新启用吗?现在看起来好像不会重新启用,但文档没有说明是否应该这样做。
final ComponentName compName =
        new ComponentName(context,
        MyBroadcastReceiver.class);

context.getPackageManager().setComponentEnabledSetting(
        compName,
        PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
        PackageManager.DONT_KILL_APP);

提前感谢...

1个回答

11
PackageManager.getComponentEnabledSettings()在冷启动之间是否持久?
是的。 它会在应用程序卸载/重新安装时重置。 如果您使用setComponentEnabledSetting()自己重置它,它将被重置。 如果具有超级用户权限的某些内容重置它(例如,设备可能有用于控制ACTION_BOOT_COMPLETED的管理器应用程序),则它将被重置。 我不确定在应用程序升级时会发生什么,因为我没有尝试过该场景。 否则,它应该保持持久。
如果我使用下面的代码禁用在AndroidManifest.xml中定义的静态BroadcastReceiver,那么在重启后它会重新启用吗?
不会。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接