Android通知栏(设置多通知,跳转至对应的界面)
来源:互联网 发布:js 设置class 的样式 编辑:程序博客网 时间:2024/06/01 08:27
最近在开发项目的过程中需要接入消息推送,综合各种情况后最终选择使用环信的消息透传来实现
其中,遇到一个问题,就是不管推送多少条,信息栏中只显示最后一条信息,最终查阅资料后,找到了原因
实现的过程如下(前提是app内部已接入环信,并且配置好了环信)
** * 获取透传信息 */public void getTouChuanXinxi() { // 注册一个cmd消息的BroadcastReceiver IntentFilter cmdIntentFilter = new IntentFilter(EMChatManager.getInstance().getCmdMessageBroadcastAction()); mContext.registerReceiver(cmdMessageReceiver, cmdIntentFilter);}/** * cmd消息BroadcastReceiver */private BroadcastReceiver cmdMessageReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { //获取cmd message对象 EMMessage message = intent.getParcelableExtra("message"); //获取消息body CmdMessageBody cmdMsgBody = (CmdMessageBody) message.getBody(); String aciton = cmdMsgBody.action;//获取自定义action i++; //获取扩展属性 try { String type = message.getStringAttribute("msgid"); JSONObject js = message.getJSONObjectAttribute("msg"); Log.i("*********透传消息*****", js.toString()); touChuanMessage = JSON.parseObject(js.toString(), TouChuanMessage.class); //消息通知栏 sendNotification(type, touChuanMessage); } catch (EaseMobException e) { e.printStackTrace(); } }};这是我在application中实现的环信消息透传配置,其中的type值是我和服务器约定好的参数值,不同的值代表着不同类型的推送消息,接下来根据不同的情况,向通知栏发送消息
/** * 向通知栏发送消息 * * @param msgid * @param */public void sendNotification(String msgid, TouChuanMessage touChuanMessage) { NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); String edtTitle = ""; Intent notificationIntent = null; // 点击该通知后要跳转的Activity if (StringUtils.isEquals(msgid, "系统消息")) { if (!AppUtils.isBackground(mContext)) { notificationIntent = new Intent(mContext, MainActivity.class); // 点击该通知后要跳转的Activity } edtTitle = touChuanMessage.getContent(); } else if (StringUtils.isEquals(msgid, "最新评论消息")) { notificationIntent = new Intent(mContext, DetailsPageActivity.class); // 点击该通知后要跳转的Activity Bundle bundle = new Bundle(); bundle.putString("topicId", touChuanMessage.getTopicId() + ""); notificationIntent.putExtras(bundle); edtTitle = touChuanMessage.getUserName() + " 评论了您的活动"; }可以根据自己的情况定义更多类型的通知,然后对消息进行设置
其中箭头标识的地方的i值其实是id值,必须对不同的消息设置不同到的id才可以显示多条消息,并且跳转进入不同的界面,两个地方缺一不可。
0 0
- Android通知栏(设置多通知,跳转至对应的界面)
- android 跳转到应用通知设置界面
- Android设置界面与通知栏裁剪
- Android应用获取通知栏权限是否开启--以及跳转到系统设置界面--解决方案
- Android应用获取通知栏权限是否开启--以及跳转到系统设置界面--解决方案
- Android应用获取通知栏权限是否开启--以及跳转到系统设置界面--解决方案
- Android应用获取通知栏权限是否开启--以及跳转到系统设置界面--解决方案
- Android 判断应用程序获取通知栏权限是否开启,以及如何跳转到应用程序设置界面
- Android 点击通知栏消息 跳转到指定的Fragment界面
- Android 点击通知栏消息 跳转到指定的Fragment界面
- Android 点击通知栏 跳转
- iOS获取通知状态并跳转设置界面设置
- iOS获取通知状态并跳转设置界面设置
- Android 应用通知权限是否开启以及跳转到设置界面
- Android (闹钟和通知栏的设置)
- 隐私设置跳转(通知,位置等)
- 应用内跳转到设置里本应用的通知界面
- Android通知栏通知
- Java语法基础之函数的使用说明
- android进度条
- 对象的序列化过程和案例
- tslib移植的问题:No raw modules loaded.ts_config:No such file or directory
- 递归引发的jvm栈溢出的理解--堆和栈的概念整理
- Android通知栏(设置多通知,跳转至对应的界面)
- 右侧悬浮框
- 初识JNDI
- android中handler用法总结
- 修改Android签名证书keystore的密码、别名alias以及别名密码
- Monkey测试工具
- 理解android:targetSdkVersion
- bean属性配置解析
- Fidller 抓包工具-手机代理抓包