Android通知栏—Notification(一)

一、概述

通知是指 Android 在您应用的界面之外显示的消息,旨在向用户提供提醒、来自他人的通信信息或您应用中的其他实时信息。用户可以点按通知来打开应用,或直接从通知中执行操作。

二、Notification属性

在这里插入图片描述
展示了通知最常见的部分,具体如下所示:

  1. 小图标:必须提供,通过 setSmallIcon() 进行设置。
  2. 应用名称:由系统提供。
  3. 时间戳:由系统提供,但您可以使用 setWhen() 替换它或者使用 setShowWhen(false) 隐藏它。
  4. 大图标:可选内容(通常仅用于联系人照片,请勿将其用于应用图标),通过 setLargeIcon() 进行设置。
  5. 标题:可选内容,通过 setContentTitle() 进行设置。
  6. 文本:可选内容,通过 setContentText() 进行设置。

三、创建基本通知

3.1 Android 8.0之前

首先,您需要使用 NotificationCompat.Builder 对象设置通知内容和渠道。

    var builder = NotificationCompat.Builder(this, CHANNEL_ID)
            .setSmallIcon(R.drawable.notification_icon)
            .setContentTitle(textTitle)
            .setContentText(textContent)
            .setPriority(NotificationCompat.PRIORITY_DEFAULT)
    
    val notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
	val notification = builder.build()
	notificationManager.notify(id, notification)	

以上方法后面会详细讲解, Android 8.0 和更高版本,必须设置渠道重要性。

3.2 Android 8.0和更高版本

从Android 8.0系统开始,Google引入了通知渠道这个概念。NotificationChannel 其实是把 Notification 分了个类别,设置不同优先级,开关之类的。如果你的 app 适配了的话,用户可以关掉不喜欢的通知,以提高用户体验。

举个🌰:我们开发一个App,这个App有两种通知,一种是聊天通知,比如是他人发给你的消息;另一种是推荐消息,比如是广告推送消息。如果用户想要收到通信通知,屏蔽推荐消息,我们就可以创建两种通知渠道,一个通信,一个推荐,如果用户对推荐类的通知不感兴趣,那么用户就可以直接将推荐通知渠道关闭,这样用户就可以只收到自己关注的通知。
我们可以看一下微信的通知渠道划分:

在这里插入图片描述
可以看到微信的通知渠道分为3个,其他通知、新消息通知、还有音视频通话邀请通知。

object NotificationUtil {
   
    private var notificationManager: NotificationManager? = null

    /**
     * 初始化NotificationManager
     */
    fun initNotificationManager(context: Context) {
   
        notificationManager = notificationManager ?: context.getSystemService(NOTIFICATION_SERVICE) as NotificationManager
        //判断是否为8.0以上:Build.VERSION_CODES.O为26
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
   
            //聊天消息渠道
            //创建通知渠道ID
            val chatChannelId = "chatNotification"
            //创建通知渠道名称
            val chatChannelName = "聊天消息"
            //创建通知渠道重要性
            val chatImportance = NotificationManager.IMPORTANCE_HIGH
            //创建渠道
            val chatChannel = NotificationChannel(chatChannelId, chatChannelName, chatImportance)
            notificationManager?.createNotificationChannel(chatChannel)


			//推荐消息渠道
            //创建通知渠道ID
            val recommendChannelId = "recommendNotification"
            //创建通知渠道名称
            val recommendChannelName = "推荐消息"
            //创建通知渠道重要性
            val recommendImportance = NotificationManager.IMPORTANCE_DEFAULT
            //创建渠道
            val recommendChannel = NotificationChannel(recommendChannelId, recommendChannelName, recommendImportance)
            notificationManager?.createNotificationChannel(recommendChannel)
        }
    }
 
    /**
     * 通知栏显示
     */
    fun 
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值