android消息通知Noticication使用详解

这篇博客主要介绍了Android中Notification的使用,包括系统默认布局和自定义布局的实现方式。讲解了如何获取NotificationManager,创建Notification对象,设置PendingIntent,并区分了Intent和PendingIntent的区别。文中还给出了使用自定义布局的代码示例。
摘要由CSDN通过智能技术生成

本人为android的新手,如果有写的不对的地方,希望各路大神多多指教哈。。。

我们经常遇见的Noticication的例子,莫过于使用qq时,手机状态栏会显示有多少条消息处于未读状态。Notification类就是实现这样的功能。

Notification通知的布局有两种:

1.使用系统默认的布局


2.使用自定义的布局


首先使用系统默认布局:

1.首先获取NotificationManager对象。NotificationManager是系统提供的服务


2.创建Notification类对象

Notification notification = new Notification.Builder(MainActivity.this)  //1
        .setAutoCancel(true)                                             //2
        .setTicker("新消息...")                                           //3
        .setSmallIcon(R.drawable.notificationsmall)                      //4                                      //5
        .setContentTitle("笑递消息")                                      //5
        .setContentText("笑递笑递内容")                                    //6
        .setContentIntent(pendingIntent)                                  //7
        .setNumber(i)                                                     //8
        .setLargeIcon(bitmap)                                             //9
        .setWhen(System.currentTimeMillis())                              //10
        .build();                                                         //11
根据上图中的每一行后面的数字匹配

对应上面的3

这里的3是对应设置的数据,注解第八行,3上面的就是第10行的setWhen

相应的解释:

2.设置可以在下拉状态栏中通过滑动取消通知

4.设置小图标一定要有

7.设置在下拉状态栏点击通知后跳转到相应的界面

这里使用的是PendingIntent.

下面解释一下PendingIntent 和Intent的区别

Intent和PendingIntent的区别,PendingIntent可以看做是对Intent的包装,通过名称可以看出PendingIntent用于处理即将发生的意图,而Intent用来处理马上发生的意图。而对于通知来说,它是一个系统级的全局的通知,并不确定这个意图被执行的时间。当在应用外部执行PendingIntent时,因为它保存了触发App的Context,使得外部App可以如果当前App一样执行PendingIntent里的Intent,就算执行时触发通知的App已经不存在了,也能通过存在PendingIntent里的Context照常执行Intent,并且还可以处理Intent所带来的额外的信息。
  PendingIntent提供了多个静态的getXxx()方法,用于获得适用于不同场景的PendingIntent对象。一般需要传递的几个参数都很常规,只介绍一个flag参数,用于标识PendingIntent的构造选择:
FLAG_CANCEL_CURRENT:如果构建的PendingIntent已经存在,则取消前一个,重新构建一个。
FLAG_NO_CREATE:如果前一个PendingIntent已经不存在了,将不再构建它。
FLAG_ONE_SHOT:表明这里构建的PendingIntent只能使用一次。
FLAG_UPDATE_CURRENT:如果构建的PendingIntent已经存在,则替换它,常用。

下面说明如何构建PendingIntent对象:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值