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();
}