很经常Broadcast都会写成一个Activity或者Service的内部类。这时候的注册和普通有点小区别。
[Android Pro] 有关Broadcast作为内部类时注册的一些问题
有两种情况
1、假如是再Manifest文件里面静态注册的话,需要注意。
ex:
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<receiver android:name=".MyActivity$MyReceiver" >
<intent-filter>
<action android:name="
com.example.test.BROADCAST" />
</intent-filter>
</receiver>
</application>
其中关键点是
一、
.MyActivity$MyReceiver 注意类名与内部类的名字之间用$符号隔开。
二、 action里面配的name com.example.test.BROADCAST 当配位这个时,广播发送时
Intent intent = new Intent("com.example.test.BROADCAST");
intent.putExtra("action", "test");
sendBroadcast(intent);
要和Intent里面的参数一致。否则将无法接受到广播。
三、 public static class MyReceiver extends BroadcastReceiver
别忘了给接收器定义成public static的,否则启动会报错。
2、假如为动态注册时
一般写在OnCreate 或者 OnStart等方法里面
IntentFilter filter = new IntentFilter(
com.example.test.BROADCAST);
registerReceiver(broadcastReceiver, filter);
动态注册的话就必须启动程序后才能接受到广播,静态注册就算这个程序没启动,也可以接收到广播。
分类: Android Pro
本文转自demoblog博客园博客,原文链接http://www.cnblogs.com/0616--ataozhijia/p/3874349.html如需转载请自行联系原作者
demoblog
微信关注我们
原文链接:https://yq.aliyun.com/articles/365349
转载内容版权归作者及来源网站所有!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
相关文章
发表评论
资源下载
更多资源优质分享App
近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。
Mario
马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。
腾讯云软件源
为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。
Nacos
Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。