Fragment使用LocalBroadcastManager接收广播消息

来源:互联网 发布:linux cname怎么设置 编辑:程序博客网 时间:2024/06/05 19:24

这种方式不用在配置文件加东西

变量声明

LocalBroadcastManager broadcastManager;IntentFilter intentFilter;BroadcastReceiver mReceiver;

广播注册,可以写在Activity(onCreate),也可以写在Fragment(onActivityCreated)里。
broadcastManager = LocalBroadcastManager.getInstance(getActivity());intentFilter = new IntentFilter();intentFilter.addAction("android.intent.action.CART_BROADCAST");mReceiver = new BroadcastReceiver() {            @Override            public void onReceive(Context context, Intent intent){                //收到广播后所作的操作            } }; broadcastManager.registerReceiver(mReceiver, intentFilter);

发送广播
Intent intent = new Intent("android.intent.action.CART_BROADCAST");LocalBroadcastManager.getInstance(getActivity()).sendBroadcast(intent);

当然,和正常广播一样,也要在对应的生命周期中反注册掉:  

@Override  protected void onDestroy() {     super.onDestroy();     broadcastManager.unregisterReceiver(mReceiver);}


0 0
原创粉丝点击