静态注册receiver时,不指定intent-filter

来源:互联网 发布:淘宝懒人鞋阿迪 编辑:程序博客网 时间:2024/05/02 06:09

    最近在分析SystemUI时,发现其AndroidManifest.xml文件中,配置了两个receiver:

     <!-- Callback for dismissing screenshot notification after a share target is picked -->
        <receiver android:name=".screenshot.GlobalScreenshot$TargetChosenReceiver"
                  android:process=":screenshot"
                  android:exported="false" />


        <!-- Callback for deleting screenshot notification -->
        <receiver android:name=".screenshot.GlobalScreenshot$DeleteScreenshotReceiver"
                  android:process=":screenshot"
                  android:exported="false" />

        发现这两个receiver都没有配置Intent-Filter指定action,就在想这种配置方式,怎样收到广播呢?

         试验之后,发现这种情况下,使用下面几种方式都可以是receiver接收到广播:

      (1) intent.setClass(MainActivity.this,MyBroadcastReceiver.class); 

      (2) intet.setComponent(new Component(MainActivity.this,MyBroadcastReceiver.class));2) 

      (3) intet.setComponent(new Component(MainActivity.this.getPackageName(),MyBroadcastReceiver.class.getName());

        总之就是设置好接收广播的 类即可。

0 0
原创粉丝点击