Android-在编辑清单以禁用组件后,它将始终被禁用

Android-在编辑清单以禁用组件后,它将始终被禁用,android,android-manifest,Android,Android Manifest,如果我在AndroidManifest中定义了一个BroadcastReceiver为已启用,并通过编程禁用了该组件,那么在重新启动后它还会被禁用吗?换言之,重新启动后它还会记得自己的状态吗 在我禁用某个组件后,系统是否还会再次启用该组件 以下是im用于在代码中禁用/启用broadcastreceiver组件的方法: private void setEnabledFromManifest(boolean enable){ final PackageManager pm = getPac

如果我在AndroidManifest中定义了一个BroadcastReceiver为已启用,并通过编程禁用了该组件,那么在重新启动后它还会被禁用吗?换言之,重新启动后它还会记得自己的状态吗

在我禁用某个组件后,系统是否还会再次启用该组件

以下是im用于在代码中禁用/启用broadcastreceiver组件的方法:

private void setEnabledFromManifest(boolean enable){
     final PackageManager pm = getPackageManager();
        final ComponentName component = new ComponentName(this,
                  MyPhoneStateReceiver.class);
        final int flags = PackageManager.DONT_KILL_APP;
        pm.setComponentEnabledSetting(
                component,
                 enable ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED:PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
                  flags);


   }

我在4.4.3安卓nexus上试过这个,但重启后就记不住了。我必须保存一个共享首选项,然后安装一个启动时完整的侦听器。通过这种方式,我设置了在引导完成时是否应该启用/禁用清单组件的首选项。设备重新启动后,组件清单中的原始值确实被记住

换句话说,如果您的组件在清单中被禁用,并且您在代码中将其更改为enabled,那么在重新启动后,该组件将再次被禁用(使用其初始值)。因此答案是否定的。重新启动后不会记住清单组件状态(至少在Nexus 4.4.3上)