广播的使用(动态广播)
程序员文章站
2023-12-29 18:37:22
使用场景:收银机会有主副屏,当主屏显示会员时,需要副屏也同时显示,此时可以选择使用广播进行通讯1注册广播(设置过滤标记)IntentFilter myIntentFilter = new IntentFilter(); myIntentFilter.addAction("con.screen.ACTION1"); myIntentFilter.addAction(ModeSelect.ACTION_SCREEN); context.registerR...
使用场景:
收银机会有主副屏,当主屏显示会员时,需要副屏也同时显示,此时可以选择使用广播进行通讯
1注册广播(设置过滤标记)
IntentFilter myIntentFilter = new IntentFilter();
myIntentFilter.addAction("con.screen.ACTION1");
myIntentFilter.addAction(ModeSelect.ACTION_SCREEN);
context.registerReceiver(mBroadcastReceiver, myIntentFilter);
private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
switch (action) {
case "con.screen.ACTION1":
if(intent.getBooleanExtra("isMember",false)){
Log.e("wy","run: "+ "接受了是会员广播");
text_danjia.setText("会员单价");
}
else {
Log.e("wy","run: "+ "接受了不是会员广播");
text_danjia.setText("单价");
}
break;
case ModeSelect.ACTION_SCREEN:
Bundle bundle = intent.getBundleExtra("haveChooseListSer");
LogCatUtil.longLog("ACTION_SCREEN","--------msg---------"+bundle.getSerializable("haveChooseListSer").toString());
updateResult((ArrayList<HashMap<String, String>>)bundle.getSerializable("haveChooseListSer"));
break;
case ModeSelect.ACTION_SCREEN_CLOSE://关闭副屏
dismiss();
break;
case ModeSelect.ACTION_SCREEN_PICTURE://更新广告展示
break;
}
}
};
2发送广播
Intent intent = new Intent();
intent.setAction("con.screen.ACTION1");
intent.putExtra("isMember",isMember);
getActivity().sendBroadcast(intent);
Log.e("wy","run: "+ "发送时会员广播");
3使用bundle发送一个ArrayList集合
private ArrayList<HashMap<String, String>> haveChooseListSer = new ArrayList<>();
Intent intent = new Intent();
intent.setAction(ModeSelect.ACTION_SCREEN);
Bundle bundle = new Bundle();
bundle.putSerializable("haveChooseListSer",haveChooseListSer);
intent.putExtra("haveChooseListSer", bundle);
本文地址:https://blog.csdn.net/xiyangyang8110/article/details/108141198
推荐阅读
-
广播的使用(动态广播)
-
微信小程序点击按钮动态添加输入框,点击步进器按钮获取输入框的值进行加减计算--不使用表单
-
Mybatis动态sql、if与where的使用、sql片段、foreach遍历、Mybatis的关联查询一对一、一对多、多对多、Mybatis的延时加载
-
具体介绍javascript使用两种方式动态生成css代码的详情
-
使用jQuery给Table动态增加行、清空table的方法
-
jquery如何使用undelegate去掉用delegate为动态创建元素绑定的事件?
-
Android 入门第十讲02-广播(广播概述,使用方法(系统广播,自定义广播,两个activity之间的交互和传值),EventBus使用方法,数据传递,线程切换,Android的系统广播大全)
-
MyBatis动态SQL中的trim标签的使用方法
-
java使用动态代理来实现AOP(日志记录)的实例代码
-
Mybatis中动态SQL,if,where,foreach的使用教程详解