| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> Android BroadcastReceiver 收不到消息 -> 正文阅读 |
|
[移动开发]Android BroadcastReceiver 收不到消息 |
最近项目里用到了Android的BroadcastReceiver,之前做的项目UI部分内容比较多,所以四大组件其实真正好好用的场景很少。 在调试过程中发现BroadcastReceiver收不到消息,很是奇怪。 于是把BroadcastReceiver使用方法又重新学习了一下,正好写一篇文章记录一下。 文章中代码为Kotlin实现。 简单点理解,BroadcastReceiver是一个广播接收器,用于接收匹配自己Action条件的消息。 在使用时,有以下几点需要注意。 1、定义/实现 BroadcastReceiver 自己需要定义与实现自己的BroadcastReceiver,如:
onReceive方法里就是接收到广播后,需要做哪些处理或相应。 2、注册BroadcastReceiver 注册分为动态注册和静态注册。 动态注册是在代码运行阶段注册,比如在Activity的onCreate方法里注册。
在注册时注意配置好Action,这样才能让BroadcastReceiver接收到指定Action的消息。 另外就是动态注册时要记得在合适的地方取消注册,比如在Activity的onDestroy方法里。
静态注册是在Manifest文件里注册,配置如下:
静态注册和动态注册干的事其实差不多,最主要的就是为你所需要使用的BroadcastReceiver配置它的ACTION,以为了让发送的消息可以准确接收到。 注意,代码里的exported属性不是必须设置的,实际上如果app内部自己使用BroadcastReceiver,这个值为false也没事。exported属性主要是为了让外部应用也可以调用它。 3、发送消息 发送消息其实很简单,代码如下:
这三行代码就能够实现发送消息的功能。 创建一个Intent并以ACTION为参数进行初始化设置。 给Intent设置包名。(这一点非常重要,因为我所使用的测试机是最新的Android 12系统,在Android 8.0 以上要求静态注册的BroadcastReceiver所接收的消息必须是显式的,我们通过设置包名的方式来告诉系统这个Intent是要发给哪个应用来接收。不设置的话就会接收不到消息) 最后sendBroadcast方法发送消息。 这些代码准备好之后,BroadcastReceiver的使用方式就介绍完了。 大家可以自己尝试着使用BroadcastReceiver了。 至于很多人发现BroadcastReceiver收不到消息的原因,其中有一条可以检查一下自己使用的测试机系统是否是Android 8以上。如果是的话,则需要设置packageName来把消息变成显式的。 否则收不到消息。 |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 23:40:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |