android8.0静态广播问题

2019-07-26  本文已影响0人  roky_e
  1. 从8.0开始需要新增setComponent(“xxx”,”xxx” ),第一个参数是app包名,第二个是广播接收者路径,例如:
Intent intent = new Intent();
//指定广播的名字
intent.setAction("com.example.android21_zhangkai_broadcastreceiver.zk");      intent.setComponent(newComponentName("com.yiqi.zhiyuan","com.yiqi.zhiyuan.common.jpush.PushMessageReceiver"));
intent.putExtra("content", msg);
sendBroadcast(intent)
  1. AndroidManifest文件中需要注册reciver,并指明action,例如:
<receiver android:name=".common.jpush.PushMessageReceiver">
    <intent-filter>
        <action android:name="com.example.android21_zhangkai_broadcastreceiver.zk"/>
    </intent-filter>
</receiver>
  1. 如果广播接收者是内部类,则必须是静态内部类,否则会接收不到消息,并且在AndroidManifest中注册时name需要用$符连接,例如:
<receiver android:name=“.common.jpush.MainActivity$PushMessageReceiver">
    <intent-filter>
        <action android:name="com.example.android21_zhangkai_broadcastreceiver.zk"/>
    </intent-filter>
</receiver>
上一篇 下一篇

猜你喜欢

热点阅读