Android注册广播的两种方式对比

  

<强> Android注册广播的两种方式对比

  

<强> 1。常驻型广播
  

  

,常驻型广播,当你的应用程序关闭了,如果有广播信息来,你写的广播接收器同样的能接受到,
  

  

,他的注册方式就是在你的应用程序中的AndroidManifast。xml进行注册。通常说这种方式是静态注册
  

  

,下面是配置例子
  

        & lt; !——桌面——比;   & lt;接收机android: name=?widget.DeskWidgeWeather”比;   & lt;元数据android: name=" android.appwidget。提供者@xml/widget_weather_provider“android:资源=/比;   & lt; intent-filter>   & lt;行动android: name=" android.appwidget.action.APPWIDGET_UPDATE "/比;   & lt;行动android: name=" action_weather "/比;   & lt;/intent-filter>   lt;/receiver>   之前      

<强>,2.非常驻型广播
  

  

,,当应用程序结束了,广播自然就没有了,比如你在活动中的onCreate或者onResume中注册广播接收器
  

  

,,在onDestory中卸载广播接收器。这样你的广播接收器就一个非常驻型的了。这种也叫动态注册。
  

  

,,比如写一个监听SDcard状态的广播接收器
  

        SdcardStateChanageReceiver sdcardStateReceiver;   @Override   保护无效onCreate(包savedInstanceState)   {   super.onCreate (savedInstanceState);   IntentFilter过滤器=new IntentFilter ();   filter.addAction (Intent.ACTION_MEDIA_REMOVED);   filter.addAction (Intent.ACTION_MEDIA_EJECT);   filter.addAction (Intent.ACTION_MEDIA_MOUNTED);   filter.addDataScheme(“文件”);   sdcardStateReceiver=new SdcardStateChanageReceiver ();   registerReceiver (sdcardStateReceiver、过滤);   }   @Override   保护无效onDestroy () {   unregisterReceiver (sdcardStateReceiver);   }   类SdcardStateChanageReceiver BroadcastReceiver{延伸      @Override   公共空间onReceive(上下文语境,意图意图)   {   字符串状态=android.os.Environment.getExternalStorageState ();   system . out。println (“SDCard发生改变!状态:“+状态);//checkSDCard ();   }   公共空间checkSDCard () {   字符串状态=android.os.Environment.getExternalStorageState ();   System.out.println(状态);   如果(state.equals (android.os.Environment。MEDIA_REMOVED) | |国家.equals (android.os.Environment.MEDIA_UNMOUNTED)) {   system . out。println (“SDCard已卸载!”);   }   }   }   之前      

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持。
  

Android注册广播的两种方式对比