01 什么是状态栏通知?
状态栏通知,顾名思义,就是显示在屏幕顶部状态栏的通知信息。
它允许应用程序以不干扰当前Activity的方式将事件通知用户。与Toast那种一闪而过的提示不同,Notification会将信息保留在状态栏和通知窗口中,直到用户主动清除。
Notification与Toast的区别十分明显:
- Toast相当于一个没有按钮的对话框,弹出几秒后自动消失,无法持久化。
- Notification则会停留在状态栏,即使应用关闭也不会消失,用户可以随时查看。
这种特性使得Notification成为后台服务(Service)与用户通信的理想方式。当后台服务需要提醒用户某个事件并需要用户响应时,它不应该直接启动Activity,而是创建一个状态栏通知,让用户在方便时点击处理。
02 通知的组成结构:解剖一个Notification
一个标准的Notification包含多个视觉元素:
- 小图标:显示在状态栏左侧,是通知最核心的视觉标识必须设置。
- 标题:通知的主要内容概括,吸引用户眼球。
- 内容文本:对通知的详细说明,让用户了解具体情况。
- 时间戳:通知产生的时间,默认是系统发出通知的时间。
- 大图标:在通知展开后显示,可用于显示应用logo或联系人头像。
在Android 4.1(Jelly Bean)及更高版本中,通知还支持扩展布局,可以显示更多内容,如长段落文本或图片预览,用户可以通过双指滑动或pinch-zoom手势打开这些扩展视图。
03 创建通知 step-by-step:从零打造你的第一个Notification
创建和显示一个状态栏通知需要经过几个明确的步骤:
第一步:获取NotificationManager
NotificationManager是Android系统提供的通知管理器,负责管理和运行所有通知。
// 获取NotificationManager对象
NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
注意:NotificationManager是系统服务,不能直接实例化,必须通过getSystemService()方法获取。
第二步:创建Notification构造器
在Android 4.0及以上版本,推荐使用Notification.Builder来构建通知:
// 创建Notification构造器
Notification.Builder mBuilder = new Notification.Builder(this);
第三步:设置通知的基本属性
使用Builder对象设置通知的各种属性:
// 设置通知小图标(必须)
mBuilder.setSmallIcon(R.

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



