Android通知Notification使用全解析,看这篇就够了
文章推薦指數: 80 %
通知是Android 在您的应用UI 之外显示的消息,用于向用户提供提醒、来自 ... 用户可以向下拖动抽屉中的通知以显示展开的视图,该视图显示其他内容和 ...
Android通知Notification使用全解析,看这篇就够了
yechaoa
于 2022-06-2620:29:51 发布
2522
收藏
30
分类专栏:
Android知识点
MaterialDesign
AndroidDemo
文章标签:
android
notification
materialdesign
android通知
通知
版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yechaoa/article/details/125465158
版权
Android知识点
同时被3个专栏收录
163篇文章
47订阅
订阅专栏
MaterialDesign
24篇文章
42订阅
订阅专栏
AndroidDemo
30篇文章
0订阅
订阅专栏
1、效果
2、简介
通知是Android在您的应用UI之外显示的消息,用于向用户提供提醒、来自其他人的通信或来自您的应用的其他及时信息。
用户可以点击通知打开您的应用或直接从通知中执行操作。
2.1、展示
通知以不同的位置和格式向用户显示,例如状态栏中的图标、通知抽屉中更详细的条目、应用程序图标上的徽章以及自动配对的可穿戴设备。
当发出通知时,它首先在状态栏中显示为一个图标。
2.2、操作
用户可以在状态栏上向下滑动以打开通知抽屉,他们可以在其中查看更多详细信息并根据通知执行操作。
用户可以向下拖动抽屉中的通知以显示展开的视图,该视图显示其他内容和操作按钮(如果提供)。
通知在通知抽屉中保持可见,直到被应用程序或用户关闭。
3、功能拆解
本文将带领实现各种常见的通知功能,以及各个Android版本需要做的适配。
4、功能实现
4.0、关键类
NotificationManager通知管理器,用来发起、更新、删除通知NotificationChannel通知渠道,8.0及以上配置渠道以及优先级NotificationCompat.Builder通知构造器,用来配置通知的布局显示以及操作相关
常用API,查看第5节。
各版本适配,查看第6节。
4.1、普通通知
privatefuncreateNotificationForNormal(){
//适配8.0及以上创建渠道
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.O){
valchannel=NotificationChannel(mNormalChannelId,mNormalChannelName,NotificationManager.IMPORTANCE_LOW).apply{
description="描述"
setShowBadge(false)//是否在桌面显示角标
}
mManager.createNotificationChannel(channel)
}
//点击意图//setDeleteIntent移除意图
valintent=Intent(this,MaterialButtonActivity::class.java)
valpendingIntent=PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_IMMUTABLE)
//构建配置
mBuilder=NotificationCompat.Builder(this@NotificationActivity,mNormalChannelId)
.setContentTitle("普通通知")//标题
.setContentText("普通通知内容")//文本
.setSmallIcon(R.mipmap.ic_launcher)//小图标
.setLargeIcon(BitmapFactory.decodeResource(resources,R.mipmap.ic_avatar))//大图标
.setPriority(NotificationCompat.PRIORITY_DEFAULT)//7.0设置优先级
.setContentIntent(pendingIntent)//跳转配置
.setAutoCancel(true)//是否自动消失(点击)ormManager.cancel(mNormalNotificationId)、cancelAll、setTimeoutAfter()
//发起通知
mManager.notify(mNormalNotificationId,mBuilder.build())
}
发起一个普通通知的几个要素:
setContentTitle标题setContentText内容setSmallIcon小图标setLargeIcon大图标setPriority优先级or重要性(7.0和8.0的方式不同)setContentIntent点击意图setAutoCancel是否自动取消notify发起通知
4.2、重要通知
重要通知,优先级设置最高,会直接显示在屏幕内(前台),而不是只有通知抽屉里,所以一定要谨慎设置,不要引起用户的负面情绪。
privatefuncreateNotificationForHigh(){
valintent=Intent(this,MaterialButtonActivity::class.java)
valpendingIntent=PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_IMMUTABLE)
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.O){
valchannel=NotificationChannel(mHighChannelId,mHighChannelName,NotificationManager.IMPORTANCE_HIGH)
channel.setShowBadge(true)
mManager.createNotificationChannel(channel)
}
mBuilder=NotificationCompat.Builder(this@NotificationActivity,mHighChannelId)
.setContentTitle("重要通知")
.setContentText("重要通知内容")
.setSmallIcon(R.mipmap.ic_launcher)
.setLargeIcon(BitmapFactory.decodeResource(resources,R.mipmap.ic_avatar))
.setAutoCancel(true)
.setNumber(999)//自定义桌面通知数量
.addAction(R.mipmap.ic_avatar,"去看看",pendingIntent)//通知上的操作
.setCategory(NotificationCompat.CATEGORY_MESSAGE)//通知类别,"勿扰模式"时系统会决定要不要显示你的通知
.setVisibility(NotificationCompat.VISIBILITY_PRIVATE)//屏幕可见性,锁屏时,显示icon和标题,内容隐藏
mManager.notify(mHighNotificationId,mBuilder.build())
}
这里有几个新增的配置:
setNumber桌面通知数量addAction通知上的操作setCategory通知类别,"勿扰模式"时系统会决定要不要显示你的通知setVisibility屏幕可见性,锁屏时,显示icon和标题,内容隐藏,解锁查看全部
4.2.1、通知上的操作
可以通过addAction在通知上添加一个自定义操作,如上图:去看看。
可以通过PendingIntent打开一个Activity,也可以是发送一个广播。
在Android10.0及以上,系统也会默认识别并添加一些操作,比如短信通知上的「复制验证码」。
4.2.2、重要性等级
紧急:发出声音并显示为提醒通知高:发出声音中:没有声音低:无声音且不出现在状态栏中
4.3、进度条通知
privatefuncreateNotificationForProgress(){
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.O){
valchannel=NotificationChannel(mProgressChannelId,mProgressChannelName,NotificationManager.IMPORTANCE_DEFAULT)
mManager.createNotificationChannel(channel)
}
valprogressMax=100
valprogressCurrent=30
mBuilder=NotificationCompat.Builder(this@NotificationActivity,mProgressChannelId)
.setContentTitle("进度通知")
.setContentText("下载中:$progressCurrent%")
.setSmallIcon(R.mipmap.ic_launcher)
.setLargeIcon(BitmapFactory.decodeResource(resources,R.mipmap.ic_avatar))
//第3个参数indeterminate,false表示确定的进度,比如100,true表示不确定的进度,会一直显示进度动画,直到更新状态下载完成,或删除通知
.setProgress(progressMax,progressCurrent,false)
mManager.notify(mProgressNotificationId,mBuilder.build())
}
比较常见的就是下载进度了,比如应用内版本更新。
通过setProgress配置进度,接收3个参数:
max最大值progress当前进度indeterminatefalse表示确定的进度,比如100,true表示不确定的进度,会一直显示进度动画,直到更新状态完成,或删除通知
如何更新进度往下看。
4.4、更新进度条通知
privatefunupdateNotificationForProgress(){
if(::mBuilder.isInitialized){
valprogressMax=100
valprogressCurrent=50
//1.更新进度
mBuilder.setContentText("下载中:$progressCurrent%").setProgress(progressMax,progressCurrent,false)
//2.下载完成
//mBuilder.setContentText("下载完成!").setProgress(0,0,false)
mManager.notify(mProgressNotificationId,mBuilder.build())
Toast.makeText(this,"已更新进度到$progressCurrent%",Toast.LENGTH_SHORT).show()
}else{
Toast.makeText(this,"请先发一条进度条通知",Toast.LENGTH_SHORT).show()
}
}
更新进度也还是通过setProgress,修改当前进度值即可。
更新分为两种情况:
更新进度:修改进度值即可下载完成:总进度与当前进度都设置为0即可,同时更新文案
注意:如果有多个进度通知,如何更新到指定的通知,是通过NotificationId匹配的。
Author:yechaoa
4.5、大文本通知
privatefuncreateNotificationForBigText(){
valbigText=
"AnotificationisamessagethatAndroiddisplaysoutsideyourapp'sUItoprovidetheuserwithreminders,communicationfromotherpeople,orothertimelyinformationfromyourapp.Userscantapthenotificationtoopenyourapportakeanactiondirectlyfromthenotification."
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.O){
valchannel=NotificationChannel(mBigTextChannelId,mBigTextChannelName,NotificationManager.IMPORTANCE_DEFAULT)
mManager.createNotificationChannel(channel)
}
mBuilder=NotificationCompat.Builder(this@NotificationActivity,mBigTextChannelId)
.setContentTitle("大文本通知")
.setStyle(NotificationCompat.BigTextStyle().bigText(bigText))
.setSmallIcon(R.mipmap.ic_launcher)
.setLargeIcon(BitmapFactory.decodeResource(resources,R.mipmap.ic_avatar))
.setAutoCancel(true)
mManager.notify(mBigTextNotificationId,mBuilder.build())
}
setStyle(NotificationCompat.BigTextStyle().bigText(bigText))
通知内容默认最多显示一行,超出会被裁剪,且无法展开,在内容透出上体验非常不好,展示的内容可能无法吸引用户去点击查看,所以也有了大文本通知的这种方式,
一劳永逸的做法就是无论内容有多少行,都用大文本的这种方式通知,具体展示让系统自己去适配。
4.6、大图片通知
privatefuncreateNotificationForBigImage(){
valbigPic=BitmapFactory.decodeResource(resources,R.drawable.ic_big_pic)
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.O){
valchannel=NotificationChannel(mBigImageChannelId,mBigImageChannelName,NotificationManager.IMPORTANCE_DEFAULT)
mManager.createNotificationChannel(channel)
}
mBuilder=NotificationCompat.Builder(this@NotificationActivity,mBigImageChannelId)
.setContentTitle("大图片通知")
.setContentText("有美女,展开看看")
.setStyle(NotificationCompat.BigPictureStyle().bigPicture(bigPic))
.setSmallIcon(R.mipmap.ic_launcher)
.setLargeIcon(BitmapFactory.decodeResource(resources,R.mipmap.ic_avatar))
.setAutoCancel(true)
mManager.notify(mBigImageNotificationId,mBuilder.build())
}
与大文本通知方式差不多
setStyle(NotificationCompat.BigPictureStyle().bigPicture(bigPic))
有一个注意的点,当已有多条通知时,默认是合并的,并不是展开的,所以可以通过setContentText("有美女,展开看看")加个提示。
当前应用的通知不超过3条,会展开超过3条,通知会聚合并折叠
4.7、自定义通知
privatefuncreateNotificationForCustom(){
//适配8.0及以上
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.O){
valchannel=NotificationChannel(mCustomChannelId,mCustomChannelName,NotificationManager.IMPORTANCE_DEFAULT)
mManager.createNotificationChannel(channel)
}
//适配12.0及以上
mFlag=if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.S){
PendingIntent.FLAG_IMMUTABLE
}else{
PendingIntent.FLAG_UPDATE_CURRENT
}
//添加自定义通知view
valviews=RemoteViews(packageName,R.layout.layout_notification)
//添加暂停继续事件
valintentStop=Intent(mStopAction)
valpendingIntentStop=PendingIntent.getBroadcast(this@NotificationActivity,0,intentStop,mFlag)
views.setOnClickPendingIntent(R.id.btn_stop,pendingIntentStop)
//添加完成事件
valintentDone=Intent(mDoneAction)
valpendingIntentDone=PendingIntent.getBroadcast(this@NotificationActivity,0,intentDone,mFlag)
views.setOnClickPendingIntent(R.id.btn_done,pendingIntentDone)
//创建Builder
mBuilder=NotificationCompat.Builder(this@NotificationActivity,mCustomChannelId)
.setSmallIcon(R.mipmap.ic_launcher)
.setLargeIcon(BitmapFactory.decodeResource(resources,R.mipmap.ic_avatar))
.setAutoCancel(true)
.setCustomContentView(views)
.setCustomBigContentView(views)//设置自定义通知view
//发起通知
mManager.notify(mCustomNotificationId,mBuilder.build())
}
假如是一个播放器的前台通知,默认的布局显示已经不满足需求,那么就用到自定义布局了。
通过RemoteViews构建自定义布局view。
因为RemoteViews并不是一个真正的view,它只是一个view的描述,所以事件处理上还是要借助PendingIntent。
setCustomContentView默认布局显示,即折叠状态下的布局setCustomBigContentView展开状态下的布局
折叠状态下,可能会展示一些基础信息,拿播放器举例,比如当前歌曲名称、歌手、暂停、继续、下一首等,就差不多展示不下了。
展开状态下,就可以提供更多的信息,比如专辑信息,歌手信息等
这两种状态下默认的布局高度:
折叠视图布局,48dp展开视图布局,252dp
4.8、更新自定义通知
privatefunupdateNotificationForCustom(){
//发送通知更新状态及UI
sendBroadcast(Intent(mStopAction))
}
privatefunupdateCustomView(){
valviews=RemoteViews(packageName,R.layout.layout_notification)
valintentUpdate=Intent(mStopAction)
valpendingIntentUpdate=PendingIntent.getBroadcast(this,0,intentUpdate,mFlag)
views.setOnClickPendingIntent(R.id.btn_stop,pendingIntentUpdate)
//根据状态更新UI
if(mIsStop){
views.setTextViewText(R.id.tv_status,"那些你很冒险的梦-停止播放")
views.setTextViewText(R.id.btn_stop,"继续")
mBinding.mbUpdateCustom.text="继续"
}else{
views.setTextViewText(R.id.tv_status,"那些你很冒险的梦-正在播放")
views.setTextViewText(R.id.btn_stop,"暂停")
mBinding.mbUpdateCustom.text="暂停"
}
mBuilder.setCustomContentView(views).setCustomBigContentView(views)
//重新发起通知更新UI,注意:必须得是同一个通知id,即mCustomNotificationId
mManager.notify(mCustomNotificationId,mBuilder.build())
}
上面提到,因为RemoteViews并不能直接操作view,所以可以通过广播的方式,对该条通知的构建配置重新设置,以达到更新的效果。
远古时期v4包里还有MediaStyle,AndroidX已经下掉了。
5、常用API
API描述setContentTitle标题setContentText内容setSubText子标题setLargeIcon大图标setSmallIcon小图标setContentIntent点击时意图setDeleteIntent删除时意图setFullScreenIntent全屏通知点击意图,来电、响铃setAutoCancel点击自动取消setCategory通知类别,适用“勿扰模式”setVisibility屏幕可见性,适用“锁屏状态”setNumber通知项数量setWhen通知时间setShowWhen是否显示通知时间setSound提示音setVibrate震动setLights呼吸灯setPriority优先级,7.0setTimeoutAfter定时取消,8.0及以后setProgress进度setStyle通知样式,BigPictureStyle、BigTextStyle、MessagingStyle、InboxStyle、DecoratedCustomViewStyleaddAction通知上的操作,10.0setGroup分组setColor背景颜色
6、各版本适配
自Android4.0支持通知以来,几乎每个版本都有各种改动,也是苦了开发了…
6.1、Android5.0
6.1.1、重要通知
Android5.0开始,支持重要通知,也称抬头通知。
6.1.2、锁屏通知
Android5.0开始,支持锁屏通知,即锁屏时显示在锁屏桌面。
从8.0开始,用户可以通过通知渠道设置启用或禁止锁屏通知…
6.1.3、勿扰模式
5.0开始,勿扰模式下会组织所有声音和震动,8.0以后可以根据渠道分别设置。
6.2、Android7.0
6.2.1、设置通知优先级
7.1及以下:
mBuilder=NotificationCompat.Builder(this@NotificationActivity,mNormalChannelId)
...
.setPriority(NotificationCompat.PRIORITY_DEFAULT)//7.0设置优先级
8.0及以上改为渠道。
6.2.2、回复操作
7.0引入直接回复操作的功能
privatevalKEY_TEXT_REPLY="key_text_reply"
varreplyLabel:String=resources.getString(R.string.reply_label)
varremoteInput:RemoteInput=RemoteInput.Builder(KEY_TEXT_REPLY).run{
setLabel(replyLabel)
build()
}
6.2.3、消息通知
7.0开始支持消息类型通知MessagingStyle
varnotification=NotificationCompat.Builder(this,CHANNEL_ID)
.setStyle(NotificationCompat.MessagingStyle("Me")
.setConversationTitle("Teamlunch")
.addMessage("Hi",timestamp1,null)//Passinnullforuser.
.addMessage("What'sup?",timestamp2,"Coworker")
.addMessage("Notmuch",timestamp3,null)
.addMessage("Howaboutlunch?",timestamp4,"Coworker"))
.build()
从8.0开始,消息类型的展示方式为折叠类型…
6.2.4、通知分组
7.0开始,通知支持分组,适用多个通知的情况。
6.3、Android8.0
6.3.1、创建通知渠道
创建通知渠道,以及重要性
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.O){
valchannel=NotificationChannel(mHighChannelId,mHighChannelName,NotificationManager.IMPORTANCE_HIGH)
mManager.createNotificationChannel(channel)
}
删除渠道
notificationManager.deleteNotificationChannel(id)
6.3.2、通知角标
8.0开始,支持设置通知时桌面的角标是否显示
valmChannel=NotificationChannel(id,name,importance).apply{
description=descriptionText
setShowBadge(false)
}
6.3.3、通知限制
8.1开始,每秒发出的通知声音不能超过一次。
6.3.4、背景颜色
8.0开始,设置通知的背景颜色。
6.4、Android10.0
6.4.1、添加操作
mBuilder=NotificationCompat.Builder(this@NotificationActivity,mHighChannelId)
...
.addAction(R.mipmap.ic_avatar,"去看看",pendingIntent)//通知上的操作
6.4.2、全屏意图
10.0全屏意图需要在manifest中申请USE_FULL_SCREEN_INTENT权限
6.5、Android12.0
6.5.1、解锁设备
12.0及以上,可以设置需要解锁设备才能操作:setAuthenticationRequired
valmoreSecureNotification=Notification.Builder(context,NotificationListenerVerifierActivity.TAG)
.addAction(...)
//fromalockscreen.
.setAuthenticationRequired(true)
.build()
6.5.2、自定义通知
从12.0开始,将不支持完全自定义的通知,会提供Notification.DecoratedCustomViewStyle替代…
6.5.3、PendingIntent
12.0需要明确设置flag,否则会有报错:
java.lang.IllegalArgumentException:com.example.imdemo:TargetingS+(version31andabove)requiresthatoneofFLAG_IMMUTABLEorFLAG_MUTABLEbespecifiedwhencreatingaPendingIntent.StronglyconsiderusingFLAG_IMMUTABLE,onlyuseFLAG_MUTABLEifsomefunctionalitydependsonthePendingIntentbeingmutable,e.g.ifitneedstobeusedwithinlinerepliesorbubbles.
mFlag=if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.S){
PendingIntent.FLAG_IMMUTABLE
}else{
PendingIntent.FLAG_UPDATE_CURRENT
}
valintentStop=Intent(mStopAction)
valpendingIntentStop=PendingIntent.getBroadcast(this@NotificationActivity,0,intentStop,mFlag)
views.setOnClickPendingIntent(R.id.btn_stop,pendingIntentStop)
梳理完适配,真的觉得Androider苦😭
7、Github
https://github.com/yechaoa/MaterialDesign
代码也有详细的注释,欢迎star
8、参考文档
NotificationsOverviewNotificationManagerNotification.BuilderNotificationNotificationChannelCreateaCustomNotificationLayout
9、最后
写作不易,感谢点赞支持^-^
yechaoa
关注
关注
19
点赞
踩
30
收藏
打赏
0
评论
Android通知Notification使用全解析,看这篇就够了
通知是Android在您的应用UI之外显示的消息,用于向用户提供提醒、来自其他人的通信或来自您的应用的其他及时信息。
用户可以点击通知打开您的应用或直接从通知中执行操作。
本文将带领实现各种常见的通知功能,以及各个Android版本需要做的。
发起一个普通通知的几个要素:重要通知,优先级设置最高,会直接显示在屏幕内(前台),而不是只有通知抽屉里,所以一定要设置,不要引起用户的负面情绪。
这里有几个新增的配置:可以通过在通知上添加一个自定义操作,如上图:去看看。
可以通过打开一个Activity,也可以是
复制链接
扫一扫
专栏目录
Android中的通知功能Notification具体实现过程
柯小帅的博客
07-02
612
Android中的通知功能Notification具体实现过程通知的定义如何发生一个简单的通知?发送通知的例子:运行效果:
通知的定义
通知(Notification)是Android中服务(Service)与用户进行交互的一种方式。
如何发生一个简单的通知?
(1)获取NotificationManager通知管理器
(2)构建Notification对象:
使用Notification.Bui...
AndroidNotification通知学习详细笔记
weixin_33872566的博客
09-16
105
为什么80%的码农都做不了架构师?>>>
...
参与评论
您还未登录,请先
登录
后发表或查看评论
Notification(状态栏通知)详解
最新发布
chuyouyinghe的专栏
07-25
274
本节带来的是Android中用于在状态栏显示通知信息的控件Notification,相信大部分学Android都对他都很熟悉,而网上很多关于Notification的使用教程都是基于2.x的,而现在普遍的Android设备基本都在4.x以上,甚至是5.0以上的都有;(boolean)设置为ture,表示它为一个正在进行的通知。
表示相应的PendingIntent已经存在,则取消前者,然后创建新的PendingIntent,这个有利于数据保持为最新的,可以用于即时通信的通信场景。
...
android实现通知,Android开发之——通知Notification
weixin_28727321的博客
05-27
570
介绍AndroidO引入了通知渠道(NotificationChannels),以提供统一的系统来帮助用户管理通知,如果是针对AndroidO为目标平台时,必须实现一个或者多个通知渠道,以向用户显示通知。
若并不以AndroidO为目标平台,当应用运行在AndroidO设备上时,其行为将与运行在Android7.0上时相同。
开发者可以为需要发送的每个不同的通知类型创建一个通知渠道。
还可以...
Notification状态通知栏(全解析)demo
09-17
Notification状态通知栏(全解析)demo:包含通知栏中通知的添加、更新、删除,以及声音、震动、灯光特效,自定义通知视图;欢迎大家交流指教!!
AndroidNotification通知使用(从基本到高级)
热门推荐
qi85481455的博客
03-28
4万+
目录
一、通知的基本使用
(1)、效果图
(2)、使用步骤
(3)、细节使用
二、通知的进阶使用
(1)、设置声音
(2)、设置振动
(3)、设置LED灯闪烁
(4)、进行默认效果设置
三、通知的高级使用
(1)、设置富文本信息
(2)、设置带有图片消息
(3)、设置通知重要程度
一、通知的基本使用
(1)、效果图
(2)、使用步骤
1、首先需要一个NotificationManager来进行...
Android篇--Notification(消息通知)
zrinlive的博客
08-18
1434
Android篇--Notification(消息通知)
消息通知(Notification)是Android系统中比较有特色的一个功能,当某个应用程序希望用户发出一些提示信息,而该应用又不在前台运行时,就可以借助通知来实现。
Android8.0之前的Notification
我们对Notification简单使用方法是:
//定义一个PendingIntent点击Notification后启动一个Activity
Intentit=newIntent(mCo
android通知详解
ymeddmn的博客
08-15
2618
概览
通知是android系统存在至今为止被变更最为频繁的api之一,android4.1、4.4、5.0、7.0、8.0都对通知做过比较大的改动。
到了8.0通知功能趋于稳定,至今没有做过更大的改动。
对一个api进行如此大的照顾那么这必然是个非常重要的api了。
那么就跟随我一起揭开通知一点都不神秘的面纱吧。
注:本文主要讲应用
通知使用
创建简单通知
我们使用NotificationCompat来创建通知,使用NotificationCompat可以兼容所有的系统版本,
Android通知详解
qq_33209777的博客
07-17
535
Android通知
AndroidNotification使用
晨曦
07-10
1771
在应用的开发中,我们必然会接触到应用通知这个知识,而在通知是随着Android版本进行不断变化,为了能在高版本和低版本中使用,就需要开发者去做适配,也属于查漏补缺。
了解之前,先看一个效果图吧。
通知的使用的内容还是比较多的,此篇文章将会尽可能详细的介绍Notification的内容。
下面就开始我们的适配之旅吧。
新建一个名为NotificationStudy的项目,如下图所示: 点击Finish完成项目创建,然后在app的build.gradle中的android{}闭包中开启viewBinding
Android自定义Notification添加点击事件
08-28
主要为大家详细介绍了Android自定义Notification添加点击事件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Android通知栏Notification的全面整合学习(完整项目源码)附配套博文
05-15
这个是通知栏框架(Notificaiton)的全面学习,里面把大概所有的情况都列了出来,通过一个DEMO让你了解它的大致所有使用过程。
可以通过以下博文进行配套了解(有效果图):
http://blog.csdn.net/vipzjyno1/article/details/25248021
AndroidNotification通知解析
01-20
Notification是显示在手机状态栏的通知,Notification通知是具有全局性的通知,一般通过NotificationManager来进行管理.
一般运用Notification的步骤如下:
1.调用getSysytemService(NOTIFICATION_SERVICE)来获取系统的NotificationManager,进行Notification的发送和回收
2.通过构造器建立一个Notification
3.为Notificationset各种属性,然后builder()建立
4.通过NotificationManager发
AndroidNotification使用方法详解
01-20
Android Notification使用详解
Notification
核心代码(链式调用):适用于Android4.0以上(不兼容低版本)
Notificationnoti=newNotification.Builder(this)
.setContentTitle(标题名称)
.setContentText(标题里的内容)
.setSmallIcon(R.drawable.new_mail)
.setLargeIcon(BitmapFactory.decordResource(getResources(),R.drawable.ic_launcher))
.bu
androidnotification的使用方法,Android中Notification通知用法详解
weixin_34941214的博客
05-25
342
Notification的作用通知(Notification)是Android系统中比较有特色的一个功能。
当某个应用程序希望向用户发出一些提示信息,而该应用程序又不在前台运行时,就可以用通知来实现用法首先我们需要一个NotificationManager来对通知进行管理,可以调用getSystemService()方法得到,方法接收一个字符串参数用于确定获取系统的哪个服务,这里我们传入NOTIFI...
android开发通知,Android开发之Notification通知用法详解
weixin_33042645的博客
05-27
755
本文实例讲述了Android开发之Notification通知用法。
分享给大家供大家参考,具体如下:根据activity的生命周期,在activity不显示时,会执行onStop函数(比如按下home键),所以你在onStop函数(按退出键除外)里面把notification放在通知栏里,再此显示时,把notification从通知栏里去掉。
或者,只要程序在运行就一直显示通知栏图标。
下面对Noti...
Android-Notification-通知的基本用法
canghieever的博客
06-24
668
Android-Notification的简单用法
Android的notification通知
weixin_51872136的博客
03-25
2667
概括:
Android使用notification实现消息提醒,提供通知栏和通知抽屉查看通知和通知详情,Android的notification机制应用非常广泛,是指在应用程序之外显示的消息,布局由系统模板决定,开发者只需要定义模板中各部分的内容,通知详情就会在点开后展开视图显示设置的内容。
目前大体分为状态栏图标通知、悬挂提醒式通知、锁屏通知及圆点通知,从Android8.0开始必须为所有通知分配一个或多个通道,否则通知将不会显示。
Android8.0及以上通过通道的importance属性设置重要性
androidnotification的使用方法,详解Android中Notification的使用方法
weixin_28567617的博客
05-25
918
在消息通知的时候,我们经常用到两个控件Notification和Toast。
特别是重要的和需要长时间显示的信息,用Notification最合适不过了。
他可以在顶部显示一个图标以标示有了新的通知,当我们拉下通知栏的时候,可以看到详细的通知内容。
最典型的应用就是未看短信和未接来电的显示,还有QQ微信,我们一看就知道有一个未接来电或者未看短信,收到QQ离线信息。
同样,我们也可以自定义一个Notific...
Android发送通知——通知栏(Notification)
weixin_43977664的博客
03-04
3818
通知是指Android在您应用的界面之外显示的消息,旨在向用户提供提醒、来自他人的通信信息或您应用中的其他实时信息。
在发出一条通知后,手机最上方的状态栏会显示一个通知的图标,下拉状态栏后就可以看到通知的详细内容。
用户可以点按通知来打开应用,或直接从通知中执行操作。
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022CSDN
皮肤主题:猿与汪的秘密
设计师:我叫白小胖
返回首页
yechaoa
CSDN认证博客专家
CSDN认证企业博客
码龄6年
暂无认证
291
原创
4858
周排名
1646
总排名
200万+
访问
等级
1万+
积分
5477
粉丝
1177
获赞
877
评论
2350
收藏
私信
关注
热门文章
Android选择图片、上传图片之PictureSelector
78863
微信小程序定时器setInterval、setTimeout,简单易用
68869
Gradle升级,Error:Connectiontimedout:connect.IfyouarebehindanHTTPproxy,pleaseconfigure
52879
FlutterTextField详解
50099
彻底弄明白Gradle相关配置
47874
分类专栏
Flutter开发实战
付费
16篇
Android自定义View
3篇
Flutter
41篇
Kotlin
10篇
Android知识点
163篇
微信小程序
24篇
MaterialDesign
24篇
前端知识点
10篇
Android疑难杂症
73篇
Flutter疑难杂症
7篇
Kotlin疑难杂症
AndroidStudio
19篇
AndroidDemo
30篇
打印机蓝牙、PC
2篇
Bmob后端云
1篇
设计模式
3篇
Mac
2篇
Axure产品原型设计
1篇
Chrome
2篇
eclipse
1篇
uni-app
1篇
年终总结
1篇
最新评论
Android硬布局item的高级写法
Abro.:
【首发】根据壁纸修改App主题,它真的来了
逝回。
:
这个功能怎样运用到系统主题上呢?
Android蓝牙开发,蓝牙连打印机。
yechaoa:
品牌有要求,型号不确定
Android蓝牙开发,蓝牙连打印机。
小张吃不饱.:
代码对打印机型号有要求吗
微信小程序返回上一页并传参
super_Azhen:
报错不存在SetData这个属性是咋回事有呀
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
带你造轮子,自定义一个随意拖拽可吸边的View
怎么简单实现菜单拖拽排序的功能
【保姆级】包体积优化教程
2022年8篇
2021年18篇
2020年28篇
2019年82篇
2018年82篇
2017年86篇
2016年21篇
目录
目录
分类专栏
Flutter开发实战
付费
16篇
Android自定义View
3篇
Flutter
41篇
Kotlin
10篇
Android知识点
163篇
微信小程序
24篇
MaterialDesign
24篇
前端知识点
10篇
Android疑难杂症
73篇
Flutter疑难杂症
7篇
Kotlin疑难杂症
AndroidStudio
19篇
AndroidDemo
30篇
打印机蓝牙、PC
2篇
Bmob后端云
1篇
设计模式
3篇
Mac
2篇
Axure产品原型设计
1篇
Chrome
2篇
eclipse
1篇
uni-app
1篇
年终总结
1篇
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
yechaoa
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:--)
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
0
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值
延伸文章資訊
- 1Android通知Notification使用全解析,看这篇就够了
通知是Android 在您的应用UI 之外显示的消息,用于向用户提供提醒、来自 ... 用户可以向下拖动抽屉中的通知以显示展开的视图,该视图显示其他内容和 ...
- 2Android 如何顯示通知訊息(Notifications)? - MagicLen
通知是開發Android App很重要的一環,尤其是在Android 5.0之後更為重要。 ... 要的,當Style並未被Android展開(Expend)時(通常只有最上方的通知會被 ...
- 3android的消息通知栏 - 阿里云开发者社区
下面就来说说经常会使用到通知机制中的通知栏框架(Notificaiton),它适用于交互事件的通知。它是位于顶层可以展开的通知列表。它会时不时的提醒你什么软件该更新了, ...
- 4Android Koltin 實作Day 15:Notification ... - iT 邦幫忙
從API 26 開始,Android 多了通知頻道(Notification channels)的功能, ... 彈出提醒、音效及震動),不顯示在狀態欄,僅顯示在展開的通知欄中。
- 5Android10.0通知Notification的使用这一篇就够了 - CSDN博客
不同android版本上通知功能; 通知的结构; 创建通知; 通知的操作; 从通知启动Activity; 展开式通知; 通知渠道; 通知的级别; 自定义通知.