1. 程式人生 > >Android第一行程式碼第二版:5.3.2傳送有序廣播,在安卓8上無法接收廣播我個人的處理方法

Android第一行程式碼第二版:5.3.2傳送有序廣播,在安卓8上無法接收廣播我個人的處理方法

希望有大佬能教我別的方法,我明前只能想到這個方法啦。多謝!

書上的原始碼是

Intent intent = new Intent("com.example.weiru.broadcasttest.MY_BROADCAST") ;

sendOrderedBroadcast(intent,null);

但是這樣在安卓8上面行不通,我在前一篇博文已經處理過了,如下

Intent intent = new Intent("com.example.weiru.broadcasttest.MY_BROADCAST") ;
intent.setComponent(new ComponentName("com.example.weiru.broadcasttest",
        "com.example.weiru.broadcasttest.MyBroadcastReceiver")) ;
sendOrderedBroadcast(intent,null);

我以為這樣就可以在別的APP裡接收這個廣播了,結果是錯的。用安卓7就可以實現了。但是安卓8實現不了。經過了好久的腦力掙扎。最終弄出來如下的程式碼:

Intent intent = new Intent("com.example.weiru.broadcasttest.MY_BROADCAST") ;
Intent intent2 = new Intent("com.example.weiru.broadcasttest.MY_BROADCAST") ;
intent.setComponent(new ComponentName("com.example.weiru.broadcasttest",
          "com.example.weiru.broadcasttest.MyBroadcastReceiver")) ;
intent2.setComponent(new ComponentName("com.example.weiru.boradcasttest2",
          "com.example.weiru.boradcasttest2.AnotherBroadcastReceiver")) ;
sendOrderedBroadcast(intent,null);
sendOrderedBroadcast(intent2,null);

這樣子就可以讓另一個APP也收到廣播啦。開心!