android 广播(二)
来源:互联网 发布:中科软件招聘 编辑:程序博客网 时间:2024/04/26 22:22
发送有序广播
a. sendOrderedBroadcast() 发送有序广播;
b. 通过Intent确定广播类型, 携带数据,Intent的数据同样修改无效;
c. 跟普通广播一样,也可以设置相应的权限;
d. 接收者可在定义android:priority定义优先级,数字越大,优先级越高;
e. 有序广播会被接收者逐个接收,中途可以中断,或添加、修改数据;
f. 可以指定一个自己的广播接收者, 这个接收者将最后一个收到广播、不会被中断、不需要任何权限、不需要配置;
g. 可以指定一个Handler用来在自己的接收者中进行线程通信;
发送者:
Intent intent = new Intent(“com.itheima.broadcast.TEST”); // 指定动作;接收者,需要配置 intent filter才能接受到此广播
intent.setFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); // 包含未启动的过的应用(也可以收到广播),默认为不包含
intent.putExtra(“data”, “这是来着广播发送者发来的贺电”); // 广播发送者的intent中的数据,接收者,修改不了
// == 有序广播时,传递的数据可修改 ==
Bundle bundle = new Bundle();
bundle.putString(“name”, “关羽”);
bundle.putInt(“age”, 22);
/* 定义权限,要求接收者,要有 com.itheima.permission.broadcast.RECEIVE 才能接收;
* 配置了最后接收者,Creceiver,无论你们怎么弄,我都可以收到广播,而且我不要配置,不要权限
* handle为null,表示使用系统默认的
* 传递了数据 1, “MainActivity”, bundle 这些都是可以在接收者修改的
*/
this.sendOrderedBroadcast(intent, “com.itheima.permission.broadcast.RECEIVE”, new CReceiver(), null, 1, “MainActivity”, bundle);
<permission android:name="com.itheima.permission.broadcast.RECEIVE" >
接收者AReceive:
public void onReceive(Context context, Intent intent) {
System.out.println(“AReceiver: ” + intent.getStringExtra(“data”));
Bundle bundle = this.getResultExtras(true); // 设置为true,表示即使没有传递Bundle数据,不会出现空指针
String message = String.format(“%s : %s : %s, %s”, getResultCode(), getResultData(), bundle.getString(“name”), bundle.getInt(“age”));
System.out.println(message); // 如果优先级高于其他接收者,将打印发送者的数据
// == 修改有序发送者,发来的数据 == bundle.putString("name", "赵子龙"); bundle.putInt("age", 222); this.setResult(2, "AReceiver", bundle); // == 修改Intent中的数据,无效 == intent.putExtra("data", "AReceiver 修改了数据"); this.setResultData("这是来自AReceiver的信息"); // this.abortBroadcast(); // 中断,比它优先级低的接收者,将不能接收到广播了}//-- 要求广播发送者必须有对应的权限,我才收 <receiver android:name="com.itheima.a.AReceiver" android:permission="com.itheima.permission.broadcast.RECEIVE" > <intent-filter android:priority="2" > <action android:name="com.itheima.broadcast.TEST" /> </intent-filter> </receiver>
- android 广播(二)
- Android广播之发送自定义广播+本地广播(二)
- 【Android】广播大全(二)
- Android中的广播机制(二)----- 发送广播
- Android广播管理二--广播注册(registerReceiver)流程分析
- Android笔记(二十四)广播机制
- 学习Android广播小结(二)
- Android笔记(二):有序广播
- Android 广播内部机制详解(二)
- [Android]AMS广播注册(二)
- android 广播机制二
- Android 广播机制(二
- Android广播机制二
- android广播事件处理二
- Android 广播接收器BroadcastReceiver(二)
- Android深入浅出系列之广播机制—Android中的广播机制(二)
- 广播机制(二)
- (二)UDP广播
- TexLive安装过程
- LeetCode 64. Minimum Path Sum
- 《Java项目实践》:简单聊天程序
- pch文件的操作
- 负载均衡的基本(常用)算法
- android 广播(二)
- C语言五子棋游戏for Windows
- Socket编程
- 仿小米联系人
- 算法的用处(转载自李开复)
- 协议和标准
- log4j详细配置(项目中应用)
- imp/exp关于IMP由拥有DBA权限的用户EXP数据时,数据存放表空间的几种情况(IMP-00013) -1
- 安卓里RecyclerView的拖拽滑动列表