Android Broadcast生命周期及注册机制
2014-05-05 16:42
197 查看
广播的生命周期:
广播接收器仅在它执行这个方法时处于活跃状态。当 onReceive() 返回后,它即为失活状态。
拥有一个活跃状态的广播接收器的进程被保护起来而不会被杀死,但仅拥有失活状态组件的进程则会在其它进程需要它所占有的内存的时候随时被杀掉。所以,如果响应一个广播信息需要很长的一段时间,我们一般会将其纳入一个衍生的线程中去完成,而不是在主线程内完成它,从而保证用户交互过程的流畅。
注册BroadcastReceiver两种方式:
方式一,静态的在AndroidManifest.xml中用<receiver>标签声明注册,并在标签内用<intent- filter>标签设置过滤器。
方式二,动态地在代码中先定义并设置好一个 IntentFilter对象,然后在需要注册的地方调 Context.registerReceiver()方法,如果取消时就调用Context.unregisterReceiver()方法。如果用动态方式注册的BroadcastReceiver的Context对象被销毁时,BroadcastReceiver也就自动取消注册了。
另外,若在使用sendBroadcast()的方法是指定了接收权限,则只有在AndroidManifest.xml中用<uses- permission>标签声明了拥有此权限的BroascastReceiver才会有可能接收到发送来的Broadcast。同样,若在注册 BroadcastReceiver时指定了可接收的Broadcast的权限,则只有在包内的AndroidManifest.xml中用<uses-permission>标签声明了,拥有此权限的Context对象所发送的Broadcast才能被这个
BroadcastReceiver所接收。
动态注册:
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(String); 为BroadcastReceiver指定action,使之用于接收同action的广播 registerReceiver(BroadcastReceiver,intentFilter);
一般在onStart中注册,onStop中取消unregisterReceiver 发送广播消息 。指定广播目标Action:Intent Intent = new Intent(action-String)指定了此action的receiver会接收此广播。
广播接收器仅在它执行这个方法时处于活跃状态。当 onReceive() 返回后,它即为失活状态。
拥有一个活跃状态的广播接收器的进程被保护起来而不会被杀死,但仅拥有失活状态组件的进程则会在其它进程需要它所占有的内存的时候随时被杀掉。所以,如果响应一个广播信息需要很长的一段时间,我们一般会将其纳入一个衍生的线程中去完成,而不是在主线程内完成它,从而保证用户交互过程的流畅。
注册BroadcastReceiver两种方式:
方式一,静态的在AndroidManifest.xml中用<receiver>标签声明注册,并在标签内用<intent- filter>标签设置过滤器。
方式二,动态地在代码中先定义并设置好一个 IntentFilter对象,然后在需要注册的地方调 Context.registerReceiver()方法,如果取消时就调用Context.unregisterReceiver()方法。如果用动态方式注册的BroadcastReceiver的Context对象被销毁时,BroadcastReceiver也就自动取消注册了。
另外,若在使用sendBroadcast()的方法是指定了接收权限,则只有在AndroidManifest.xml中用<uses- permission>标签声明了拥有此权限的BroascastReceiver才会有可能接收到发送来的Broadcast。同样,若在注册 BroadcastReceiver时指定了可接收的Broadcast的权限,则只有在包内的AndroidManifest.xml中用<uses-permission>标签声明了,拥有此权限的Context对象所发送的Broadcast才能被这个
BroadcastReceiver所接收。
动态注册:
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(String); 为BroadcastReceiver指定action,使之用于接收同action的广播 registerReceiver(BroadcastReceiver,intentFilter);
一般在onStart中注册,onStop中取消unregisterReceiver 发送广播消息 。指定广播目标Action:Intent Intent = new Intent(action-String)指定了此action的receiver会接收此广播。
相关文章推荐
- android 60 Android Broadcast生命周期及注册机制
- Android Broadcast生命周期及注册机制
- Android系统中的广播(Broadcast)机制注册注销发送原理总结
- BroadcastReceiver ---Android中的广播机制(发短信)
- Android系统中的广播(Broadcast)机制简要介绍和学习计划
- android开发之广博机制二 不同注册方式 短信监听
- 【Android】BroadCast广播机制应用与实例
- Android Binder机制(2) ContextManager注册过程分析
- Android Broadcast 和 BroadcastReceiver的权限机制
- Android之Android apk动态加载机制的研究(二):资源加载和activity生命周期管理
- [Android Pro] 有关Broadcast作为内部类时注册的一些问题
- Android广播接收机制(BroadcastReceiver)
- android 107--Broadcast的生命周期
- android 4.4中broadcast 注册机制变化
- Android系统中的广播(Broadcast)机制简要介绍和学习计划
- Android广播管理一--Broadcast机制介绍
- Android系统中的广播(Broadcast)机制简要介绍和学习计划
- Android BroadcastReceiver 的静态动态注册及区别
- Android Broadcast 和 BroadcastReceiver的权限机制
- 事件监听:诀别Android繁琐的事件注册机制——view.setOnXXXXListener