Android通知栏(设置多通知,跳转至对应的界面)

最近在开发项目的过程中需要接入消息推送,综合各种情况后最终选择使用环信的消息透传来实现

其中,遇到一个问题,就是不管推送多少条,信息栏中只显示最后一条信息,最终查阅资料后,找到了原因

实现的过程如下(前提是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才可以显示多条消息,并且跳转进入不同的界面,两个地方缺一不可。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

产品阿强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值