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

时间:2014-04-08 22:51:54

标签: android android-manifest android-package-managers

如果我使用下面的代码禁用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 个答案:

答案 0 :(得分:8)

  

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

是。它将在应用程序卸载/重新安装时重置。如果您使用setComponentEnabledSetting()自行重置,则会重置该值。如果具有超级用户权限的内容重置它(例如,设备可能有一些用于控制ACTION_BOOT_COMPLETED的管理器应用程序),它将被重置。而且我不确定应用程序升级会发生什么,因为我没有尝试过这种情况。否则,它应该保持持久。

  

如果我使用下面的代码禁用AndroidManifest.xml中定义的静态BroadcastReceiver,重启后会重新启用吗?

没有