Android通知栏的使用

本文详细介绍了Android中通知栏机制的使用方法,包括如何通过Notification和NotificationManager创建和管理通知,涉及通知的基本布局、配置及高级特性如进度条的添加。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

、简介 在android的应用层中,涉及到很多应用框架,例如:Service框架,Activity管理机制,Broadcast机制,通知机 制,ActionBar框架等等。 下面就来说说经常会使用到通知机制中的通知栏框架(Notificaiton),它适用于交互事件的通知。它是位于顶层可以展 开的通知列表。它会时不时的提醒你什么软件该更新了,什么人发你微信消息了等。
二、使用
Notificaiton状态通知栏:
Notification支持文字内容显示、震动、三色灯、铃声等多种提示形式,在默认情况下,Notification仅显示消息标题、
消息内容、送达时间这3项内容。以下就是通知的基本布局。 状态通知栏主要涉及到2个类: Notification 和 NotificationManager Notification为通知信息类,它里面对应了通知栏的各个属性 NotificationManager : 是状态栏通知的管理类,负责发通知、清除通知等操作。
使用步骤: 
第一步:获取状态通知栏管理:
NotificationManager mNotificationManager = (NotificationManager)
getSystemService(NOTIFICATION_SERVICE); 
第二步:实例化通知栏构造器NotificationCompat.Builder:
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this); 
第三步:对Builder进行配置:
mBuilder.setContentTitle("测试标题")//设置通知栏标题
.setContentText("测试内容"//设置通知栏显示内容
.setContentIntent(getDefalutIntent()) //设置通知栏点击意图
// .setNumber(number) //设置通知集合的数量
.setTicker("测试通知来啦"//通知首次出现在通知栏, 带上升动画效果的
.setWhen(System.currentTimeMillis())//通知产生的时间, 会在通知信息里显示, 一般是系统获取到的时间
.setPriority(Notification.PRIORITY_DEFAULT//设置该通知优先级
// .setAutoCancel(true)//设置这个标志当用户单击面板就可以让通知将自动取消
.setOngoing(false)//ture, 设置他为一个正在进行的通知。 他们通常是用来表示一个后台任务,用户积极参与(如播放音
)或以某种方式正在等待,因此占用设备(如一个文件下载,同步操作,主动网络连接)
.setDefaults(Notification.DEFAULT_VIBRATE)//向通知添加声音、 闪灯和振动效果的最简单、 最一致的方式是使用当
前的用户默认设置, 使用defaults属性, 可以组合
//Notification.DEFAULT_ALL Notification.DEFAULT_SOUND 添加声音 // requires VIBRATE permission
.setSmallIcon(R.drawable.ic_launcher);//设置通知小ICON
public PendingIntent getDefalutIntent(){
Intent noticeIntent = newIntent(getContext(), MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(getContext(), 0, noticeIntent, 0);
return pendingIntent;
} 第四步:获取Notification对象, 设置flags和显示的layout并通知
Notification notification = mBuilder.build();
notification.flags = Notification.FLAG_AUTO_CANCEL;
notification.contentViewnewRemoteViews(getContext().getPackageName(), R.layout.app_upgrade_notice);
notificationManager.notify(0notification);
Notify添加进度条:
notification.contentView.setProgressBar(R.id.pg_upgrade100, progress, false);
其他Flags:
Notification.FLAG_SHOW_LIGHTS //三色灯提醒,在使用三色灯提醒时候必须加该标志符
Notification.FLAG_ONGOING_EVENT //发起正在运行事件(活动中)
Notification.FLAG_INSISTENT //让声音、振动无限循环,直到用户响应 (取消或者打开)
Notification.FLAG_ONLY_ALERT_ONCE //发起Notification后,铃声和震动均只执行一次
Notification.FLAG_AUTO_CANCEL //用户单击通知后自动消失
Notification.FLAG_NO_CLEAR //只有全部清除时,Notification才会清除 ,不清楚该通知(QQ的通知无法清除,就是用的这个)
Notification.FLAG_FOREGROUND_SERVICE //表示正在运行的服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值