Android:通知的简单使用

通知(notification)是Android系统中一个比叫有特色的功能。某个应用程序希望向用户发送一些提示信息,而这个应用程序又不在前台运行时,就可以借助通知功能来实现。Android的通知功能一经推出就大获成功,连iOS在5.0版本之后也加入了类似的功能。

🏷 目录

  1. 获得通知管理器
  2. 创建一个通知渠道
  3. 由管理器注册渠道
  4. 创建一个通知
  5. 由管理器发送通知

🏃‍♀️ 步骤

1.获得通知管理器

首先需要一个管理器对通知进行管理,通过调用getSystemService(Context.NOTIFICATION_SERVICE)方法获取管理器,在这里注意强转型为NotificationManager

val manager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager

2.创建一个通知渠道

由于之前Android版本开发者对于通知的滥用,导致Android官方在8.0版本时添加了通知渠道这个概念来约束开发者的行为。在8.0及其之后的版本中想要使用通知就必须得添加渠道,并且渠道创建后不可再修改了。

创建通知渠道代码如下:

val channel = NotificationChannel("123", "推广", NotificationManager.IMPORTANCE_DEFAULT)

使用NotificationChannel类构建一个通知渠道,创建时至少需要以下三个参数:

参数名称参数类型参数说明
渠道IDString可随意定义名称,只需保持全局唯一性
渠道名称String设置里给用户看的,说明该渠道的用途
重要等级Int不同等级决定通知的行为:例如高级点的通知会显示悬浮窗,低等级的则静默通知
(*:当然这只是初始设置,用户之后可随时修改等级)

3.由管理器注册渠道

用管理器中的createNotificationChannel函数完成渠道的创建。此时Android Studio会报红线,因为这两行代码都是Android8.0新增的写法,为了兼容还需进行版本判断。得益于Android Studio的智能性,我们只需要根据它的提示按下快捷键alt + enter就能添加相应代码。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
   	val channel = NotificationChannel("123", "推广", NotificationManager.IMPORTANCE_DEFAULT)
   	manager.createNotificationChannel(channel)
}

4.创建一个通知

接下来就是创建有实质性内容的通知了。我们首先需要一个Builder构造器创建Notification对象,但由于Android系统不同版本对通知功能的修改导致通知的API不稳定,所以我们需要一个AndroidX库中的兼容APINotificationCompat类保证稳定性。

val notification = NotificationCompat.Builder(this, "123")

这个构造类接受两个参数,第一个上下文,第二个发送通知渠道的ID。

接着就是连缀多个设置方法添加实质性的内容,并以build()结尾完成创建。

val notification = NotificationCompat.Builder(this, "123")
            .setContentTitle("通知标题")
            .setContentText("通知内容")
            //	状态栏显示的小图标
            .setSmallIcon(R.drawable.ic_launcher_foreground)
            //	通知列表显示的图标
       .setLargeIcon(BitmapFactory.decodeResource(resources,R.drawable.ic_launcher_foreground))
            .setAutoCancel(true)
            .build()

5.由管理器发送通知

最后就是调用管理器的notify()方法发送通知。

manager.notify(1,notificaftion)

两个参数:

参数名称参数类型参数说明
通知的IDInt需要保持不同
Notificaftion的实例Notificaftion这没什么好说的,想要发送就得传入

🌃 效果图:

在这里插入图片描述
2020年7月22日 星期三 下午8:36

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值