Android中動態註冊

山有木xi發表於2020-03-10

Android廣播是一個很重要,也很有用的功能,其中的動態註冊更是很重要,相比於靜態註冊早AndroidManifest.xml中註冊,動態註冊只需要在程式碼中操作即可

第一種寫法:

首先新建一個Java類,透過"New/Other/Broadcast Receiver",命名為MyReceiver,新增以下內容

public static String ACTION="learnbroadcastreceive.MyReceive";

然後新增

public MyReceive{
public void OnReceive(Context context,Intent intent){
Toast.maetText(context,"收到一條廣播",toast.LENGTH_LONG).show();
}
}


然後在MainAcitivity中新增

private Myreceiver receiver=null;

然後新增

public void registeMyReceiver(View view){
if(receive==null){
receive=new MyReceiver();
registerReceiver(receiver,new intentFilter(MyReceive.Action));
}
}
public void unRegisterReceiver(){
if (receive!=null){
unregistReceive(receiver);
receive=null;
}
}
public void sendBc(View view){
sendBroadcast(new Intent(this.MyReceive.ACTION));
}

然後在xml中修改相應的部分即可

第二種寫法:

第二種寫法,其實是將所有程式碼都放在MainAcitivity中

private IntentFlier intentfiler
private MyReceiver receive

onCreate中新增

receive=new MyReceiver();
registerReceiver(receiver,new intentFilter(MyReceive.Action));

新建

public void onDestroy(){
super.onDestroy
unregistReceive(receiver);
}
public void OnReceive(Context context,Intent intent){
Toast.maetText(context,"收到一條廣播",toast.LENGTH_LONG).show();
}


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69917874/viewspace-2679352/,如需轉載,請註明出處,否則將追究法律責任。

相關文章