Android四大组件之BroadcastReceveier
来源:互联网 发布:淘宝如何设置图片保护 编辑:程序博客网 时间:2024/05/22 10:41
Android四大组件之BroadcastReceveier
@(Blog)[马克飞象|Markdown|Android]
什么是BroadcasetReceveier
在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。而BroadcastReceiver是对发送出来的 Broadcast进行过滤接受并响应的一类组件。
上面是在其他地方粘来的解释,我的理解是这就是一个事件监听器,用于监听系统发送生的一些事件,比如电量不足、网络变化等。
使用
只需要继承BroadcasetReceveier
并实现onReceive
即可。
public class SystemBroadcastReceiver extends BroadcastReceiver { private static final String TAG = "SystemBroadcastReceiver"; @Override public void onReceive(Context context, Intent intent) { //Log.d(TAG, context.toString()); Toast.makeText(context, "网络变化", Toast.LENGTH_SHORT).show(); }}
提示
如果你是在activity或service中注册的,onReceive的context
就是表示你进行注册时所在的context,如果是采用静态注册的,则是android.app.ReceiverRestrictedContex
注册
- 静态注册
在AndroidManifest.xml文件中加入以下代码
<receiver android:name=".broadcastreceiver.SystemBroadcastReceiver"> <intent-filter> <!-- 监听网络变化--> <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/> </intent-filter></receiver>
- 动态注册
动态注册的广播接收优先级高于静态注册,所有永远都先接收到广播
//注册if (mSystemBroadcastReceiver == null) { mSystemBroadcastReceiver = new SystemBroadcastReceiver();}IntentFilter intentFilter = new IntentFilter();intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);registerReceiver(mSystemBroadcastReceiver, intentFilter);//注销unregisterReceiver(mSystemBroadcastReceiver);
由于静态注册时对广播的注册时由系统自己判断的,所以我们就少了注销这一步,但在动态注册中,广播会跟随Activity
的生命周期,在Activity
结束前必须注销广播。
根据Activity
的生命周期,我将注册是写在onStart
,而注销是写在onStop
的。当然,写在onResume
和onPause
也是可以的。
参考
[置顶] 两分钟彻底让你明白Android Activity生命周期(图文)!
Android入门:广播发送者与广播接收者
0 0
- Android四大组件之BroadcastReceveier
- android之四大组件
- Android之四大组件
- Android之四大组件
- Android之四大组件
- android之四大组件
- Android之android四大组件
- android四大组件之intent
- Android四大组件之Activity
- Android四大组件之服务
- Android四大组件之Activity
- Android之四大组件解析
- Android四大组件之服务
- Android四大组件之 Service
- Android四大组件之 Service
- Android四大组件之 Service
- Android四大组件之Activity
- Android四大组件之ContentProvider
- poj 2932 Coneology (扫描线)
- html DOCTYPE声明详解
- TexturePacker
- struts2action配置
- Combination Sum
- Android四大组件之BroadcastReceveier
- java 内存空间
- ZOJ - 2186 Keep on Truckin'
- stm32定时器输入捕获pwm
- 数据结构实验图论一:基于邻接矩阵的广度优先搜索遍历
- 如何修改Android系统的版本号
- HDU 5301 Buildings(机智)
- ZOJ3527
- Android 限制只输入某些值包括数字、字母等