众所周知广播是安卓的四大组件之一,其中的用处可想而知。
在平时的开发中我们会遇到 在activity finish()之后 ,我们会返回上一个界面而随之需要更新上一个界面的数据展示,我们就可以通过广播的方式进行通知。
具体看代码:
1、发送广播:
Intent intent = new Intent(AD_DOWNLOAD_ACTION);
intent.putExtra("resource", resource);
LocalBroadcastManager.getInstance(getActivity()).sendBroadcast(intent);
以上intent的action是一个常量,携带我们的参数。
2、接收广播:
LocalBroadcastManager broadcastManager;
/**
* 注册广播接收器
*/
private void receiveAdDownload() {
broadcastManager = LocalBroadcastManager.getInstance(getActivity());
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(XXX.AD_DOWNLOAD_ACTION);
broadcastManager.registerReceiver(mAdDownLoadReceiver, intentFilter);
}
BroadcastReceiver mAdDownLoadReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Resource resource = (Resource) intent.getSerializableExtra("resource");
//这里接收到广播和数据,进行处理就是了
}
}
};
但是不要忘了一点,在我们不需要接收广播的时候,一点要取消掉。
这里,我在onDestroy方法里,进行了广播的取消
@Override
public void onDestroy() {
super.onDestroy();
broadcastManager.unregisterReceiver(mAdDownLoadReceiver);
}
这样我们就完成了。