您的位置:首页 > 移动开发 > Android开发

关于android中broadcast和BroadcastReceiver浅谈

2015-08-12 15:43 561 查看
第一步:

首先写自己的广播接收

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()来进行初步分类,然后再对不同的情况进行判断处理,
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: