1)5.2.1弹出两次已连接或者未连接

这是因为你同时打开了流量和WiFi,他就会发出两次广播。

2)5.3.1中发送自定义广播问题

标准广播未能弹出消息:

Intent intent=new Intent("com.example.broadcasttest.MY_BROADCAST");
sendBroadcast(intent);

上述已经失效了。

修改:

Intent intent=new Intent("com.example.broadcasttest.MY_BROADCAST");
intent.setPackage("com.example.broadcasttest");
sendBroadcast(intent);

原因:

若App的TargetSDK达到了26, 我们正常静态注册的广播就没有用了。能用的仅有以下豁免的Broadcast, 包括我们自己正常发广播,如果不指定包名, 静态注册的也是收不到的。PS:动态注册是没有影响的。

3)5.3.2发送有序广播时同样的问题

BroadcastTest2接收不到标准广播,未能弹出"received in AnotherBroadcastReceiver"

解决办法:

在发送广播中的那个MainActivity中修改

Intent intent=new Intent("com.example.broadcasttest.MY_BROADCAST");
intent.setPackage("com.example.broadcasttest");
sendBroadcast(intent);
Intent intent2=new Intent("com.example.broadcasttest.MY_BROADCAST");
intent2.setPackage("com.example.broadcasttest2");
sendBroadcast(intent2);

原因:

依然是因为静态注册未指定包名;

4)截断广播

静态注册的广播不知道能不能截断,但是似乎说是失效了,只能截断动态注册广播。此时我们就会换成动态注册,以后也尽量使用动态注册。也不需要带上setPackage就能发送了,简单多了。

 private IntentFilter intentFilter;private MyBroadcastReceiver myBroadcastReceiver;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button button =  findViewById(R.id.button);intentFilter = new IntentFilter();intentFilter.addAction("com.example.broadcasttest.MY_BROADCAST");intentFilter.setPriority(100);myBroadcastReceiver = new MyBroadcastReceiver();registerReceiver(myBroadcastReceiver,intentFilter);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Intent intent = new Intent("com.example.broadcasttest.MY_BROADCAST");
//                intent.setPackage("com.example.mybroadcastreceiver");sendOrderedBroadcast(intent,null);
//                Intent intent2 = new Intent("com.example.broadcasttest.MY_BROADCAST");
//                intent2.setPackage("com.example.broadcasttest2");
//                sendOrderedBroadcast(intent2,null);}});
intentFilter.setPriority(100);

设置优先级,优先级高的先播出。

如果需要截断,就是不向下继续传递广播,就可以在该广播中写如:

abortBroadcast();

以上我将学习《第一行代码》(第二版)广播因代码失效改进的问题。

本文章借鉴如下博客:

这个是原因,但是其中的代码我没有成功实现。

(5条消息) 《第一行代码2》的5.3.1节,发送标准广播后没有弹出提示消息_qq_42332046的博客-CSDN博客

以下是成功实现的代码原博客:

(5条消息) Android 第一行代码(第二版) 发送标准广播无效 接受不到_明道_N的博客-CSDN博客

(5条消息) 第一行代码5.3有序广播_昵称不能为——的博客-CSDN博客

《第一行代码》(第二版)广播的问题及其解决相关推荐

  1. 第一行代码-第二版(郭霖著)笔记五(Broadcast Receiver)

    目录 一.广播机制简介 二.接收系统广播 1.动态注册监听网络变化 2.静态注册实现开机启动 三.发送自定义广播 1.发送标准广播 2.发送有序广播 五.广播的最佳实践---实现强制下线功能 一.广播 ...

  2. Android第一行代码第二版简要总结

    进入安卓的第一本书(简要概括) 第一章 了解大体Android 1.Android系统架构 Linux内核层:为Android设备的各种硬件提供了底层的驱动. 系统运行库层:通过c/c++库来提供主要 ...

  3. 第一行代码-第二版(郭霖著)笔记六(持久化技术)

    目录 一.持久化技术简介 二.文件存储 1.将数据存储到文件中 2.从文件中读取数据 三.SharedPreference存储 1.将数据存储到SharedPreferences中 2.从Shared ...

  4. 第一行代码-第二版(郭霖著)笔记十一(高级技巧)

    目录 一.全局获取Context的技巧 二.使用Intent传递对象 1.Serializable方式 2.Parcelable方式 三.定制自己的日志工具 四.调试Android程序 五.深色主题 ...

  5. 第一行代码第二版6.4.1小节创建数据库中遇到adb shell出错的问题

    该小节中我们照着作者说的一步步写完相应的代码,并运行程序,最后需要使用adb shell来对数据库和表的创建情况进行检查. 可是当配置好环境变量之后,在命令行终端输入adb shell结果如下所示: ...

  6. 第一行代码-第二版(郭霖著)笔记四(Fragment)

    目录 一.碎片是什么 二.碎片的使用方式 1.碎片的简单用法 2.动态添加碎片 3.在碎片中模拟返回栈 4.碎片和活动之间的通信 三.碎片的生命周期 1.碎片的状态和回调方法 四.动态加载布局的技巧 ...

  7. 第一行代码(第二版)全书代码下载

    Github地址: https://github.com/newcaoguo/booksource

  8. 《第一行代码》中遇到的问题

    前言: 最近刚刚学完郭霖的第一行代码(第二版)这本书,是我选择入门安卓的一本书,看到很多人都推荐这本书,所以就去图书馆借来趁寒假学习下.但是由于技术是不断更新的,而这本书是16年的,虽然也算是市面上比 ...

  9. Android build.gradle文件详解(转述自《Android第一行代码》第二版)

    Android build.gradle文件详解 1. 最外层目录下的build.gradle文件 1.1 repostories 1.2 dependencies 2. app目录下的build.g ...

  10. Kotlin 基础语法(《第一行代码(第三版)》第二章读书笔记)

    资源来自<第一行代码>(第三版)第二章 网络试读: https://www.ituring.com.cn/book/tupubarticle/30209 以下为笔记 转存失败重新上传取消正 ...

最新文章

  1. LVS负载均衡之持久性连接介绍(session篇)
  2. Excel超级链接方式应用技巧
  3. javascript创建对象 1
  4. 软件测试相关概念与分类
  5. pdf 深入理解kotlin协程_Kotlin协程实现原理:挂起与恢复
  6. java向有序数组里插数_Java向有序数组中插入一个元素,,使其仍按有序排列,并求出这个插入元素的下标...
  7. Ant Design暗黑模式设计解析
  8. SpringBoot任务——JSoup+定时任务 定时爬取微博热搜至数据库
  9. 在idea导入项目依赖爆红
  10. UE4 编辑器下生成自定义蓝图类
  11. 体验极好的临时邮箱,10分钟邮箱,极美观,速度特别快
  12. 桌面文件不见了怎么办?3个详细教程
  13. 常用分析模型---5W2H分析模型
  14. 代理服务器proxy server
  15. while(true) Thread.Sleep(XX)我通常是用这种写法,有没有更好的写法或者改进
  16. J2EE:赛迪网J2EE视频总结
  17. 计算机网络实验 数据链路4-6章 问答题
  18. OtterCTF 3-4
  19. AcWing 3565. 完美矩阵 (绝对值不等式)
  20. java项目如何分工合作,JavaWeb基础 jsp+servlet分工合作的简单示例

热门文章

  1. STM32驱动LCD1602程序(调试已成功)
  2. 科立捷默认频率_科立捷(KOLEEJ) 【京东配送·隔日达】民用大功率自驾游酒店地下室隧道4S店对讲机 KLJ-T10...
  3. 【笔记整理】电磁场复习——麦克斯韦四个方程组
  4. 51单片机实现电子密码锁设计
  5. 计算机与农学论文,农学毕业论文范文
  6. 华为服务器u盘安装win系统,华为电脑u盘重装系统win10教程
  7. 老板突然出现,游戏飞速隐藏,开源神器在手,摸鱼不怕被抓包
  8. Symbian 之浏览器
  9. Google Chrome抓包分析详解
  10. 计算机病毒属于源程序吗,计算机病毒是否是源程序吗