广播传送数据机制
1. 先注册广播 :(注意:注册广播要在接收广播之前)
MyReceiver receiver = new MyReceiver();IntentFilter filter = new IntentFilter();// 创建IntentFilter对象filter.addAction("android.intent.action.test");registerReceiver(receiver, filter);
其中MyReceiver为广播接收器,可以同时注册多个广播registerReceiver(receiver, filter);只要filter.addAction("不一样的标识");
2.广播注册完后要发送广播
Intent intent = new Intent(); intent.setAction("android.intent.action.test");// action与接收器相同 Bundle bundle = new Bundle(); bundle.putSerializable("showAllFriends", list);//这里可以传送数据intent.putExtras(bundle); sendBroadcast(intent);
3.接收广播
/** * 广播接收器 * * @author Administrator * */public static class MyReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) { Bundle bundle = intent.getExtras(); bundle.getSerializable("showAllFriends"));System.out.println("---------------------------------");}public MyReceiver() {System.out.println("MyReceiver");// 构造函数,做一些初始化工作,本例中无任何作用}}