Android Notification使用
2022/4/3 23:22:06
本文主要是介绍Android Notification使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一 Android的Notification
Notification是用来通知、提示用户的一种机制.起到提示用户的作用.
二 Notification的类别
1.状态栏和抽屉式通知
//获取NotificationManager对象 val notificationManager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager val intent = Intent(NotificationActivity@this,MainActivity::class.java) //PendingIntent.FLAG_ONE_SHOT 多次创建也只能使用一次 val pendingIntent = PendingIntent.getActivity(NotificationActivity@this,0,intent,PendingIntent.FLAG_ONE_SHOT) //通道id 该id需要和创建NotificationChannel指定的id一致 val channelId = "komine.demos.app" //创建Notification对象 val notification = Notification.Builder(NotificationActivity@this,channelId) //channelId //通知的文字内容 .setContentTitle("NotificationContentTitle") //通知的正文内容 .setContentText("NotificationContent") //Android8.0+提供的badge通知数字,默认只会显示一个圆点,需要长按应用图标才能看到设置的数字 .setNumber(39) //pendingIntent 提供点击通知之后执行的动作,比如打开一个Activity .setContentIntent(pendingIntent) //设置通知左上角显示的图标,该图标不能太大,否则不正常显示,而且要是纯色的 .setSmallIcon(R.mipmap.notification) //通知的大图标 .setLargeIcon(BitmapFactory.decodeResource(resources,R.mipmap.ic_launcher)) //.setContent() //已过时,换成setCustomContentView() 设置自定义的布局View //设置自定义布局 .setCustomContentView() ////设置为true,当用户点击的时候自动消失 .setAutoCancel(false) //设置左上角图片的颜色 即setSmallIcon图片的颜色 .setColor(Color.RED) //可以理解为内容的样式,比如要放一张图片,一段文字或者媒体播放控制等,常用Notification.BigPictureStyle,Notification.BigTextStyle .setStyle(Notification.BigPictureStyle().bigPicture(bitmap)) //显示一个进度条,参数1:最大值,参数2:当前进度,参数3:循环效果 .setProgress(100,39,false) .build() //如果运行在Android8.0+ 需要指定NotificationChannel,并且在Notification.Builder中指定指定channelId if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){ //在8.0+需要创建一个通知渠道,才能发送通知 val notificationChannel = NotificationChannel(channelId,"一般通知",NotificationManager.IMPORTANCE_HIGH) notificationManager.createNotificationChannel(notificationChannel) } //最后调用notify方法显示通知 参数一:tag可以随便填,参数二:通知的重要级别,参数三:Notification对象 notificationManager.notify("",NotificationManager.IMPORTANCE_NONE,notification)
.setProgress(100,39,false)
.setProgress(100,39,true)
.setNumber(39)
.setColor(Color.RED)
.setStyle(Notification.BigPictureStyle().bigPicture(BitmapFactory.decodeResource(resources,R.mipmap.miku)))
.setStyle(Notification.BigTextStyle().bigText("这是一段很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长很长的文字"))
2.提醒式通知/顶部悬浮通知
跟一般通知的用法一致
Android8.0+ 在创建NotificationChannel的时候指定为 NotificationManager.IMPORTANCE_HIGH
val notificationChannel = NotificationChannel(channelId,"一般通知",NotificationManager.IMPORTANCE_HIGH)
Android8.0以下
.setFullScreenIntent(pendingIntent,true) //或者在显示对话框的时候指定,8.0+必须在NotificationChannel指定 notificationManager.notify("",NotificationManager.IMPORTANCE_HIGH,notification)
这篇关于Android Notification使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15在使用平台私钥进行解密时提示 "私钥解密失败" 错误信息是什么原因?-icode9专业技术文章分享
- 2024-11-15Layui框架有哪些方式引入?-icode9专业技术文章分享
- 2024-11-15Layui框架中有哪些减少对全局环境的污染方法?-icode9专业技术文章分享
- 2024-11-15laydate怎么关闭自动的日期格式校验功能?-icode9专业技术文章分享
- 2024-11-15laydate怎么取消初始日期校验?-icode9专业技术文章分享
- 2024-11-15SendGrid 的邮件发送时,怎么设置回复邮箱?-icode9专业技术文章分享
- 2024-11-15使用 SendGrid API 发送邮件后获取到唯一的请求 ID?-icode9专业技术文章分享
- 2024-11-15mailgun 发送邮件 tags标签最多有多少个?-icode9专业技术文章分享
- 2024-11-15mailgun 发送邮件 怎么批量发送给多个人?-icode9专业技术文章分享
- 2024-11-15如何搭建web开发环境并实现 web项目在浏览器中访问?-icode9专业技术文章分享