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学习笔记 解决无法发送自定义广播的问题的主要内容,如果未能解决你的问题,请参考以下文章

android 广播自定义广播接收问题

Android连载22-自定义广播之标准广播发送

Android:安卓学习笔记之广播机制的简单理解和使用

自定义广播(BroadcastReceiver)事件 --Android开发

Android学习笔记-Broadcast01-详解广播机制

ANDROID_MARS学习笔记_S02_006_APPWIDGET3_AppWidget发送广播及更新AppWidget