PackageManager.getComponentEnabledSettings()在冷启动之间是否持续存在? [英] Is PackageManager.getComponentEnabledSettings() persistent between cold starts?

查看:302
本文介绍了PackageManager.getComponentEnabledSettings()在冷启动之间是否持续存在?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我使用下面的代码禁用了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆