Android Notification 开发经验分享

本文介绍如何在Android应用中实现抢单功能的通知机制,包括通过友盟推送消息、设置通知显示属性、利用PendingIntent实现点击通知后的跳转操作等关键技术点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在开发项目时遇到一个需求,就是要实现一个抢单功能,后台会通过push的方式向手机端推送消息,手机收到消息后,展示一个对话框,点击确定后跳转到抢单界面,同时,在通知中心有通知提示,通过点击通知也可以跳转到对应的activity。

消息推送是推过友盟推送进行实现的,在onMessage()时,我们会开始对应的弹框和后初始化notification。初始化的代码如下:

//初始化通知
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context
        .NOTIFICATION_SERVICE);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context);
NotificationCompat为google推出的兼容模式,保证各个版本都可以正常使用。初始化后,就是设置对应的参数,要保证通知能够实现,3个属性要保证必须实现分别是Title、Text、SmallIcon。如果少设置了某个属性,系统就不能正常实现显示通知。

设置了通知显示属性后要实现点击以后能跳转到对应的操作还需要设置对应的intent。这里是会用到PendingIntent,我们需要给PendingInten设置对应的属性,然后将PengindgIntent设置给Builder,就可以通过点击通知实现跳转了。

//getActivity第二个参数,不同的通知需要传不同的num,不然到导致多个通知,前面的会被后面的覆盖
PendingIntent mainPendingIntent = PendingIntent.getActivity(context, num,
        intent, PendingIntent.FLAG_CANCEL_CURRENT);
其中getActivity的第二个参数,如果每次可能弹出多个通知,则要保证每个通知的num都不一样,否则,只会有一个通知有效其他的会失效。可以通过使用随机数的方式来保证每次的num值不一样。

mBuilder.setContentTitle(title).setContentText(msg).setSmallIcon(R.mipmap.ic_launcher)
        .setContentIntent(mainPendingIntent).setAutoCancel(true);
将对应的属性设置完就可以调用

mNotificationManager.notify(id, mBuilder.build());
来开始通知了。此处notify方法的id在同时存在多个通知时,也需要保证每一个都不一样不然前面的通知会被覆盖,在通知栏里面只能看到最新的通知。

就此就可以实现最基本的通知功能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值