《黑马程序员安卓教程:让接收者修改发送的数据》由会员分享,可在线阅读,更多相关《黑马程序员安卓教程:让接收者修改发送的数据(2页珍藏版)》请在金锄头文库上搜索。
1、让接收者修改发送的数据将 MyReceiver3 的 onReceive 方法的 abortBroadCast() 方法给去掉,不让其终止广播。然后修改 MyReceiver3 和 MyReceiver2 其代码如下文件所示:【文件 1-21】 MyReceiver3.java 修改后的代码1. public class MyReceiver3 extends BroadcastReceiver 2.3. Override4. public void onReceive(Context context, Intent intent) 5. String action = intent.getA
2、ction();6. String resultData = getResultData();7. Log.d(tag, MyReceiver3 接收到 + action + 发布的广播: + resultData);8. /*/终止该广播的传播9. abortBroadcast();*/10. /设置结果数据未 5000 元11. setResultData(转账 5000 元);12. 13. 14.【文件 1-22】 MyReceiver2java 修改后的代码1. public class MyReceiver2 extends BroadcastReceiver 2.3. Overr
3、ide4. public void onReceive(Context context, Intent intent) 5. String action = intent.getAction();6. String resultData = getResultData();7. Log.d(tag, MyReceiver2 接收到 + action + 发布的广播: + resultData);8. /设置结果数据9. setResultData(转账 3000 元);10. 11. 重新执行上面的代码,运行结果如下:图 1-13 日志输出 4 观察日志输出,我们发现 MyReceiver3 接收到的数据是 10000 元,然后其将结果修改为了 5000 元,因此 MyReceiver2 接收到的数据就是 5000 元,MyReceiver2 又将数据修改为 3000 元,因此 MyReceiver1接收到的数据就为 3000 元。这个过程很好理解,注意 MyReceiver1 的日志打印了两次,这是为什么呢?22这是因为我们在发送有序广播的时候将 MyReceiver1 作为了最终广播,因此 MyReceiver1 就有两个身份了,第一次执行是普通的广播接收者接收到数据,第二次是最为最终广播接收者接收到数据。