Android学习笔记——BroadcastReceiver
2017-04-03 11:46
176 查看
BroadcastReceiver的静态注册和动态注册
注册广播的方式
1.动态注册(在*.java代码中注册)2.静态注册(在AndroidManifest.xml中注册receiver)
例:动态注册,监听网络变化
MainActivity.java1. 声明两个数据成员
private IntentFilter intentFilter; private NetworkChangeReceiver networkChangeReceiver;
2.在onCreate方法里注册广播
intentFilter = new IntentFilter(); intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE"); //要监听的广播(网络变化) networkChangeReceiver = new NetworkChangeReceiver(); registerReceiver(networkChangeReceiver, intentFilter); //注册
3.重写MainActivity的onDestory方法,取消注册
@Override protected void onDestroy() { super.onDestroy(); localBroadcastManager.unregisterReceiver(networkChangeReceiver); //取消注册 }
4.创建一个内部类NetworkChangeReceiver继承广播接收器BroadcastReceiver
class NetworkChangeReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { ConnectivityManager connectionManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = connectionManager.getActiveNetworkInfo(); if(networkInfo!=null && networkInfo.isAvailable()){ Toast.makeText(context, "network is available", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(context, "network is unavailable", Toast.LENGTH_SHORT).show(); } } }
5.在AndroidManifest.xml内加入查看系统网络状态的权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
6.运行程序,在打开或关闭网络时就会有相应提示,即使按下Home键,打开其他应用也能检测到网络状态变化并发送广播(但如果按返回键则不行,返回会自动调用onDestroy方法取消注册的广播。)
例:静态注册,实现开机启动
1.新建类继承BroadcastReceiver,重写onReceive方法public class BootCompleteReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, "Boot Complete", Toast.LENGTH_LONG).show); } }
2.在AndroidManifest中声明开机启动权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
3.在AndroidManifest中静态注册广播接收器
<receiver android:name=".BootCompleteReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> </intent-filter> </receiver>
4.把程序安装在手机上,重启手机后,就会看到发出的广播”Boot Complete”
相关文章推荐
- Pro Android学习笔记(三二):Menu(3):Context菜单
- Android学习笔记 EditText的简单使用
- Android学习笔记 Gallery图库组件的使用
- Android学习笔记(五):Activity和main.xml文件
- Pro Android学习笔记(四九):ActionBar(2):Action图标区
- Android学习笔记1
- Android学习笔记进阶19之给图片加边框
- Android学习笔记:文件读取与ListView
- Android学习笔记_17_Intent匹配规则(隐式意图)
- Android学习笔记_29_样式和主题
- Android学习笔记_38_图片的拖动、缩放功能和多点触摸
- Android学习笔记_46_fragment的简单应用
- Android学习笔记第六章
- Android学习笔记 第14章
- Android学习笔记__实现布局自动滚动
- Android学习笔记之Spinner
- Android学习笔记_6_保存文件到SDCard
- Android学习笔记_21_ViewFlipper使用详解
- Android学习笔记_38_图片的拖动、缩放功能和多点触摸
- Android学习笔记--通过wifi向服务器端发送数据