转载请注明原文地址:http://blog.csdn.net/forwardyzk/article/details/36901745
使用广播接收者跨界面传递信息
情况是这样的,我是在A界面弹出了一个悬浮窗,当B界面消失的时候,让A界面上的悬浮窗消失。
使用代码注册广播接收者:
在设置弹出悬浮窗的时候,注册广播接收者:
A界面:
privateBroadcastReceiver broadcastReceiver;
private boolean registerBoolean = false;// 是已经否注册广播
// 注册一个广播
IntentFilterfilter = new IntentFilter();
filter.addAction("receive.popuwindow.dismiss");
broadcastReceiver= new BroadcastReceiver() {
@Override
publicvoid onReceive(Context context, Intent intent) {
if(intent.getAction().equals("receive.popuwindow.dismiss")) {
test()://启动广播接受者执行的操作 }
}
};
context.registerReceiver(broadcastReceiver,filter);
registerBoolean = true;
最好进行此判断操作:
intent.getAction().equals("receive.popuwindow.dismiss")
在注册了广播后,要记得注销,否则会报出不必要的异常。
Public void test(){
If (broadcastReceiver != null && registerBoolean) {// 广播存在,并且已经注册,才可以注销
context.unregisterReceiver(broadcastReceiver);
registerBoolean= false;
}
}
在B界面的onDestroyView()方法或者onDestroy()方法中发送广播
Intent intent = newIntent();
intent.setAction("receive.popuwindow.dismiss");
getActivity().sendBroadcast(intent);
发送消失悬浮窗的广播