相邻activity之间传递消息使用Intent比较方便,但是不相邻的activity之间传递消息是,用activity就比较麻烦了,这时间使用广播就完美的解决了这个问题。
首先,acvtivity发送一条广播
//NetUrl中的成员变量
public static final String action = "com.example.refresh";
//在activity中调用
Intent intent = new Intent(NetUrl.action);
intent.putExtra("refresh","111");
sendBroadcast(intent);
在需要的activity中接收广播
//声明 content
protected Context mContext;
//这activity的onCreate注册广播
mContext = this.getApplicationContext();
IntentFilter filter = new IntentFilter(NetUrl.action);
mContext.registerReceiver(broadcastReceiver, filter);
//broadcastReceiver 写在onCreate方法外
BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String valueText=null;
if ("111".equals(intent.getStringExtra("refresh"))){
//此处接收到广播,写要进行的操作
}
}
};
//一定要在onDestroy中注销,不然会内存溢出
@Override
protected void onDestroy() {
super.onDestroy();
mContext.unregisterReceiver(broadcastReceiver);
}
注意:一定要注销