文档开发者中心
我的

【综合】Android学习笔记:通知(Notification)

一、通知的基本用法

1、在活动中创建

2、在广播接收器里创建

3、在服务里创建

二、创建通知的详细步骤

(1)首先需要一个NotificationManager来对通知进行管理,可以调用Context的getSystemService()方法获取到。 getSystemService()方法接收一个字符串参数用于确定获取系统的哪个服务,这里我们传入Context.NOTIFICATION_SERVICE即可。


(2)接下来需要使用一个Builder构造器来创建Notification对象,为了防止API不稳定的问题,采用support库中提供的兼容API。support-v4库中提供了一个NotificationCompat类,使用这个类的构造器来创建Notification对象,就可以保证我们的程序在所有的Android系统版本上都能正常工作。


(3)以上工作完成后,只需调用NotificationManager的notify()方法就可以让通知显示出来了。


三、取消通知的方法(两种解决方法)

(1)一种是在NotificationCompat.Builder中再连缀一个setAutoCancel()方法。


在setAutoCancel()方法传入true,表示当点击了这个通知的时候,通知会自动取消掉。


(2)一种是显式地调用NotificationManager的cancel()方法将它取消。


在cancel()方法中传入1,当前1指代的是通知设置的id。因此,如果想取消哪条通知,在cancel()方法中传入该通知的id即可。


四、常见的通知样式

(1)普通的Notification

(2)折叠式Notification

折叠式Notification是一种自定义视图的Notification,用来显示长文本和一些自定义的布局场景。它有两种状态:一种是普通状态下的视图(如果不对其进行自定义,则和普通Notification的样式一样),一种是展开状态下的视图(需要自定义视图,而且这个视图显示的进程和我们创建视图的进程不在一个进程,所以需要使用RemoteViews)。


(3)悬挂式Notification

悬挂式Notification是Android 5.0 新增加的方式。和前两种显示方式不同的是,前两种需要下拉通知栏才能看到通知,而悬挂式不需要下拉通知栏就能直接显示出来悬挂在屏幕上方,并且焦点不变,仍在用户操作的界面,因此不会打断用户的操作,其过几秒就会自动消失。


五、通知的显示等级

Android 5.0 加入了一种新的模式Notification的显示等级,共有以下三种:


VISIBILITY_PUBLIC:任何情况都会显示通知。

VISIBILITY_PRIVATE:只有在没有锁屏时会显示通知。

VISIBILITY_SECRET:在pin、password等安全锁和没有锁屏的情况下才能够显示。



点赞
收藏
回复
12
分享
举报
浏览1121 发布于2019-11-08 02:13未知归属地
全部评论
最多点赞
最新发布
最早发布

点击查看:Android学习笔记:IntentService

12楼回复于2019-11-08 02:16 未知归属地

点击查看:Android学习笔记:线程池(ThreadPool)

11楼回复于2019-11-08 02:16 未知归属地

点击查看:Android学习笔记:服务(Service)

10楼回复于2019-11-08 02:15 未知归属地

点击查看:Android学习笔记:Volley

9楼回复于2019-11-08 02:15 未知归属地

点击查看:Android学习笔记:Handler

8楼回复于2019-11-08 02:15 未知归属地

点击查看:Android学习笔记:活动(Activity)

7楼回复于2019-11-08 02:15 未知归属地

点击查看:Android学习笔记:SharedPreferences

6楼回复于2019-11-08 02:15 未知归属地

点击查看:Android学习笔记:AsyncTask

5楼回复于2019-11-08 02:14 未知归属地

点击查看:Android学习笔记:EventBus和otto

4楼回复于2019-11-08 02:14 未知归属地

点击查看:Android学习笔记:ButterKnife插件

3楼回复于2019-11-08 02:14 未知归属地
共2页
写回答
新增插入模板功能
一键使用模板,快速填写内容,轻松发帖~
知道了
  • 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
  • 如您发布的内容为转载内容,请注明内容来源。

我要发帖子

了解社区公约,与您携手共创和谐专业的开发者社区。