學(xué)習(xí)第一行代碼時授嘀,編寫書中demo時,發(fā)現(xiàn)靜態(tài)廣播無法接收,百度和谷歌后發(fā)現(xiàn),android8.0后對于靜態(tài)廣播的限制增大椒楣。
//該方式對于8.0以下系統(tǒng)有用
Intent intent=new Intent("com.example.broadcast.MY_BROADCAST");
sendBroadcast(intent);
8.0及以上系統(tǒng)贡歧,有兩種方式,setComponent()和addFlags()
- 使用setComponent()方法
Intent intent2=new Intent("name.pabo.broadcasttest.MY_RECEIVERED");
//第一個參數(shù)是包名,第二個參數(shù)是廣播接收器類的路徑
intent2.setComponent(new ComponentName("name.pabo.broadcasttest.broadcast","name.pabo.broadcasttest.broadcast.MyReceiver"));
sendBroadcast(intent2);
- 使用addFlags()方法
Intent intent1=new Intent("name.pabo.broadcasttest.broadcast.MY_BROADCAST");
//android studio中會報錯,但可以build
intent1.addFlags(0x01000000);
sendBroadcast(intent1);
setComponent()方法適用于啟動同一應(yīng)用內(nèi)廣播,addFlags()適用于通知其他應(yīng)用