android学习笔记 解决无法发送自定义广播的问题
Posted before16
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android学习笔记 解决无法发送自定义广播的问题相关的知识,希望对你有一定的参考价值。
解决发送自定义广播无法收到的问题
参考了
https://blog.csdn.net/kongqwesd12/article/details/78998151
方法一:
使用动态广播,不在androidManifest.xml文件中对Broadcast Receicer进行静态注册,取而代之使用在代码中动态注册的方法
静态注册
<receiver
android:name=".MyReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="com.test.broadcast" />
</intent-filter>
</receiver>
改为动态注册
IntentFilter filter = new IntentFilter();
filter.addAction("com.test.broadcast");
MyReceiver myReceiver=new MyReceiver();
MainActivity.this.registerReceiver(myReceiver, filter);
方法二
创建Intent时调用setComponent方法
设置ComponentName
Intent intent = new Intent();
intent.setAction("com.test.broadcast");
intent.setComponent(new ComponentName("com.example.myapplication","com.example.myapplication.MyReceiver"));
sendBroadcast(intent);
ComponentName构造函数第一个参数为packet name
第二个参数为class name
以上是关于android学习笔记 解决无法发送自定义广播的问题的主要内容,如果未能解决你的问题,请参考以下文章
自定义广播(BroadcastReceiver)事件 --Android开发
Android学习笔记-Broadcast01-详解广播机制
ANDROID_MARS学习笔记_S02_006_APPWIDGET3_AppWidget发送广播及更新AppWidget