使用代码进行reregisterReceiver,ACTION_BOOT_COMPLETED这个事件,为什么重启后不能启动相应receiver。用mainfest中注册能用的,求解

解决方案 »

  1.   

    It is okay, however, to call this method from another BroadcastReceiver that has itself been registered at run time with registerReceiver(BroadcastReceiver, IntentFilter), since the lifetime of such a registered BroadcastReceiver is tied to the object that registered it.Context.registerReceiver手册上的一段,注册广播的生命周期依赖于注册他的对象,所以你注册这个广播的对象存在了,并且调用了registerReceiver这个广播才有效。
      

  2.   

    代码注册依赖于注册它的对象,manifest注册是由系统检测receive类型,系统帮你启动。
    类似于代码注册相当于一个局部变量,在它的作用域内有效。manifest注册相当于全局变量,一直都有效