靜態註冊
靜態註冊是指在清單檔案裡面直接寫。
動態註冊
動態註冊就是在傳送廣播的activity裡面寫
//動態註冊
mybroadcasreceivera mybroadcasreceivera = new mybroadcasreceivera();
intentfilter intentfilter = new intentfilter();
//"android.intent.action.my_broadcast"為廣播名
//設定優先順序為10
// intentfilter.setpriority(10);
intentfilter.addaction("android.intent.action.my_broadcast");
this.registerreceiver(mybroadcasreceivera,intentfilter);
注意:因為靜態註冊和動態註冊的廣播接收器我們起的名字一樣,所以它們都能接收到廣播。
無序廣播
無序廣播就是所有的廣播所有的廣播接收器都能接收到廣播,不存在優先順序高低的問題,內容都是同時接收到。
有序廣播
與優先順序有關,優先順序高的先接收到,然後優先順序低的再接收到。從優先順序高的流向優先順序低的,當然,優先順序高的也可截斷廣播,讓廣播從這個開始,不會再流向優先順序低的廣播。
//無序廣播
sendbroadcast(intent);
//有序廣播
sendorderedbroadcast(intent,null);
//在此截斷廣播。廣播的內容不會流向比這個優先順序低的廣播接收器。。。
abortbroadcast();
還有一種特殊情況,當動態註冊的廣播和靜態註冊的廣播並存時,不管優先順序大小,動態的廣播總會先執行。
下面奉上完整**
清單檔案裡面的**,兩個廣播接收器,乙個傳送廣播的activity
傳送廣播的activity
import android.content.intent;
import android.content.intentfilter;
import android.os.bundle;
import android.view.view;
import android.widget.button;
public class mianactivityf extends activity
});} }
下面是註冊的兩個廣播接收器。乙個是靜態註冊,乙個是動態註冊
mybroadcasreceivera是動態註冊,mybroadcasreceiverb是靜態註冊
import android.content.broadcastreceiver;
import android.content.context;
import android.content.intent;
import android.util.log;
import android.widget.toast;
public class mybroadcasreceivera extends broadcastreceiver }
import android.content.broadcastreceiver;
import android.content.context;
import android.content.intent;
import android.util.log;
import android.widget.toast;
public class mybroadcasreceiverb extends broadcastreceiver }
還有乙個是activity的布局檔案
<?xml version="1.0" encoding="utf-8"?>
就這樣。 Android學習 廣播接收器
常規性事件接聽器 case r.id.btnsendmsg intent i new intent this,myreceiver.class 註冊接收器後就不能使用顯式intent,需使用下面的隱式方法,無註冊的話使用上面 即可 intent i new intent myreceiver.act...
自定義廣播接收不到(靜態註冊廣播接收器)
問題 按照 第一行 中寫的自定義廣播接收器,採用靜態註冊的方式,在android8.0以及更高的版本中無法收到廣播資訊。需要給intent新增component或者setpackage也行,就是需要更明確的指定處理這個intent的元件資訊。自定義廣播接收器 public class mybroad...
go指標接收器和非指標接收器
type student struct 指標接收器 func s student ageadd1 非指標接收器 func s student ageadd2 指標接收器傳入的是struct本身,非指標接收器傳入的是struct的copy副本 指標接收器可以讀寫struct中的內容,非指標接收器只能讀...