android广播简单使用
来源:互联网 发布:网络时间校准网址 编辑:程序博客网 时间:2024/06/13 19:27
android广播简单使用
android广播使用得先注册,广播2种注册方式,动态注册和静态注册,他们的区别可以去网上搜索,
我简单总结下如何使用。
1.动态广播:
1).首先Activity初始化
public static final String BROADCAST_ACTION = “com.example.bhxx.testandroid”;//这个值随便填,注意与下面的保持一致就行
private BroadcastReceiver mBroadcastReceiver;
/**
* 注册动态广播
*/
private void registerBroadcase() {
mBroadcastReceiver = new MyBroadcastReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(BROADCAST_ACTION);//只有持有相同的action的接受者才能接收此广播
registerReceiver(mBroadcastReceiver, intentFilter);//注册
}
2).使用广播
//发送广播内容
Intent intent = new Intent(); //Itent就是我们要发送的内容
intent.putExtra(“data”,”上海欢迎您”);
intent.setAction(BROADCAST_ACTION); //设置你这个广播的action,只有和这个action一样的接受者才能接受者才能接收广播
sendBroadcast(intent); //发送广播
3).广播接收
private class MyBroadcastReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(BROADCAST_ACTION)){ String value = intent.getStringExtra("data"); Log.i("TAG","value="+value); } }}
4).注销广播
unregisterReceiver(mBroadcastReceiver);
搞定。
2.静态注册
1).在配置文件中添加
<receiver android:name="com.example.bhxx.testandroid.receiver.MyReceiver"> <intent-filter> <action android:name="com.example.bhxx.testandroid.receiver.MyReceiver.startbroadcase"> </action> </intent-filter> </receiver>
//name值可以随便填 与后面对应就行
2).发送广播
//发送广播内容
Intent intent2 = new Intent(); intent2.setAction("com.example.bhxx.testandroid.receiver.MyReceiver.startbroadcase");intent2.putExtra("data", "北京欢迎您");sendBroadcast(intent2);
3).新建广播接收类 (MyReceiver )
public class MyReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals("com.example.bhxx.testandroid.receiver.MyReceiver.startbroadcase")){ String values = intent.getStringExtra("data"); Log.i("TAG","values =" +values); }}
}
Ok搞定
注意,广播接收数据不能直接设置到主线程中。广播也能在内部类中使用,配置文件中这样使用:
<!-- 注册一个广播接受者 开启服务广播 --> <receiver android:name="com.cn.daming.deskclock.TimersActivity$MyReceiver"> <intent-filter> <action android:name="com.cn.daming.deskclock.startReceiver" ></action> </intent-filter> </receiver>
BasicActivity(基础Activity类)中可以用动态注册广播监听全局APP是否联网,
使用如下:
1).注册
protected NesConnectionChangeReceiver changeReceiver;
private void registerReceiver() {
IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
changeReceiver = new NesConnectionChangeReceiver();
this.registerReceiver(changeReceiver, filter);
}
2).接收
protected class NesConnectionChangeReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { ConnectivityManager connectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mobNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); NetworkInfo wifiNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if (!mobNetInfo.isConnected() && !wifiNetInfo.isConnected()) { // 改变背景或者 处理网络的全局变量' showToast("网络不可用"); } } }
3).注销
private void unRegisterReceiver() { this.unregisterReceiver(changeReceiver); }
- android广播简单使用
- android 广播的简单使用
- android 广播的简单使用
- Android广播的简单使用
- Android中广播的简单使用
- Android广播BroadcastReceiver最简单使用示例
- Android 广播的代码注册与简单使用
- android 广播的使用
- android广播使用注意
- android 广播的使用
- android 广播的使用
- android 广播的使用
- android 广播的使用
- android 广播的使用
- Android广播使用
- Android的广播使用
- Android使用本地广播
- android 广播的使用
- IE浏览器打不开网页,其他浏览器却可以打开
- LevelDB源码分析2-整数编解码
- YUV数据格式
- shader 光照贴图
- android标题栏
- android广播简单使用
- CTR点击率预估干货分享
- KVM虚拟机添加新磁盘
- C/C++ 开源库及示例代码
- mysql主从复制环境搭建
- Mac下通过brew安装指定版本的nodejs
- asp.net获取客户端请求页面信息
- 7条小建议,助你更好使用大数据!
- Java多线程问题总结