第一步:
首先写自己的广播接收
public class MyBroadCaseRecevier extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if(intent.getAction().equals("com.example.mydemo.dynamic")){
if(!TextUtils.isEmpty(intent.getStringExtra("close"))){
Toast.makeText(context, intent.getStringExtra("close"), 1).show();
}else if(!TextUtils.isEmpty(intent.getStringExtra("open"))){
Toast.makeText(context, intent.getStringExtra("open"), 1).show();
}
}
}
}
第二步:
然后在使用时,先注册广播:
private MyBroadCaseRecevier myBroadCaseRecevier;
myBroadCaseRecevier=new MyBroadCaseRecevier();
IntentFilter counterActionFilter = new IntentFilter(broacast);
registerReceiver(myBroadCaseRecevier, counterActionFilter);
第三步:
发送广播:
Intent intent=new Intent();
if(view.getId()==R.id.one_btn){
intent.setAction(broacast);
intent.putExtra("close", "shut down");
}else if(view.getId()==R.id.two_btn){
intent.setAction(broacast);
intent.putExtra("open", "open");
}
sendBroadcast(intent);
首先写自己的广播接收
public class MyBroadCaseRecevier extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if(intent.getAction().equals("com.example.mydemo.dynamic")){
if(!TextUtils.isEmpty(intent.getStringExtra("close"))){
Toast.makeText(context, intent.getStringExtra("close"), 1).show();
}else if(!TextUtils.isEmpty(intent.getStringExtra("open"))){
Toast.makeText(context, intent.getStringExtra("open"), 1).show();
}
}
}
}
第二步:
然后在使用时,先注册广播:
private MyBroadCaseRecevier myBroadCaseRecevier;
private String broacast="com.example.mydemo.dynamic";
myBroadCaseRecevier=new MyBroadCaseRecevier();
IntentFilter counterActionFilter = new IntentFilter(broacast);
registerReceiver(myBroadCaseRecevier, counterActionFilter);
第三步:
发送广播:
Intent intent=new Intent();
if(view.getId()==R.id.one_btn){
intent.setAction(broacast);
intent.putExtra("close", "shut down");
}else if(view.getId()==R.id.two_btn){
intent.setAction(broacast);
intent.putExtra("open", "open");
}
sendBroadcast(intent);
在上面三步中,第一步的intent.getAction(),第二步的broacast,和第三步的 intent.setAction(broacast)中的broacast,必须一致
因为在BroadcastReceiver中,会接收不同应用或者同一个应用各种广播,而不同广播的表示就是 intent.setAction(broacast);,所以在MyBroadCaseRecevier中根据intent.getAction()来进行初步分类,然后再对不同的情况进行判断处理,