Notification学习(1)
来源:互联网 发布:js清除浏览器history 编辑:程序博客网 时间:2024/06/07 05:42
1、首先需要一个NotificationManager来对通知进行管理,可以调用Context的getSystemService()方法获取到。getSystemService()方法接收一个字符串参数用于确定获取系统的哪个服务。
String service=NOTIFICATION_SERVICE;//获取系统服务NotificationManager notificationManager= (NotificationManager) getSystemService(service);
2、创建一个Notification对象,这个对象用于存储通知所需的各种信息,可用它的有参构造函数进行创建,接收3个参数:
(1)第一个参数用于指定通知的图标
(2)第二个参数用于指定通知的ticker内容,当通知刚被创建的时候,它会在系统的状态栏一闪而过,属于一种瞬时的提示信息。
(3)第三个参数用于指定通知被创建的时间,以毫秒为单位,当下拉系统状态栏时,这里指定的时间会显示在相应的通知上。
Notification notification=new Notification(R.mipmap.ic_launcher,"Notification测试",System.currentTimeMillis());
3、创建好对象后,需要对通知的布局进行设定,这里只需要调用Notification的setLatestEventInfo()方法给通知设定一个标准的布局,接收4个参数:
(1)第一个是Context
(2)第二个是置顶通知的标题内容,下拉系统状态栏可以看到这部分。
(3)第三个用于指定正文的内容,同样下拉系统状态栏就会看到这部分内容。
(4)PendingIntent对象
Intent intent=new Intent(MainActivity.this,MainActivity.class);PendingIntent pendingIntent=PendingIntent.getActivity(MainActivity.this, 0, intent, 0);notification.setLatestEventInfo(this,"我的标题","我的内容",pendingIntent);
4、最后调用NotificationManager的notify()方法就可以让通知显示出来。notify()接收两个参数,第一个是id,要保证每个通知所指定的id都是不同的;第二个是Notification对象。
notificationManager.notify(1,notification);//发出通知
5、取消通知
notificationManager.cancel(1);//取消通知
PS:PendingIntent和Intent区别
1、Intent倾向于去立即执行某个动作
2、PendingIntent倾向于在某个合适的时机去执行某个动作,可以理解为延迟执行的Intent。
PendingIntent用法:
它主要提供几个静态方法(getActivity()、getBroadcast()、getService()方法)用于获取PendingIntent的实例。
它们接收的参数是相同的:
(1)、Context
(2)、第二个参数一般用不到,传入0即可。
(3)、Intent对象
(4)、用于确定PendingIntent的行为。有:
FLAG_CANCEL_CURRENT:如果当前系统中已经存在一个相同的PendingIntent对象,那么就将先将已有的PendingIntent取消,然后重新生成一个PendingIntent对象。
FLAG_NO_CREATE:如果当前系统中不存在相同的PendingIntent对象,系统将不会创建该PendingIntent对象而是直接返回null。
FLAG_ONE_SHOT:该PendingIntent只作用一次。在该PendingIntent对象通过send()方法触发过后,PendingIntent将自动调用cancel()进行销毁,那么如果你再调用send()方法的话,系统将会返回一个SendIntentException。
FLAG_UPDATE_CURRENT:如果系统中有一个和你描述的PendingIntent对等的PendingInent,那么系统将使用该PendingIntent对象,但是会使用新的Intent来更新之前PendingIntent中的Intent对象数据,例如更新Intent中的Extras。
- Notification学习(1)
- Android学习日记(1):Notification
- Notification学习(转载)
- Notification学习(2)
- Android ApiDemo学习(二)notification——1 IncomingMessage
- notification学习
- Notification学习
- Notification学习
- Notification 学习
- Android Notification学习--发出Notification
- android基础学习(9)-------notification提醒
- Android基础学习之Notification(通知)
- Notification的使用(学习笔记)
- android Notification通知消息学习(NotificationManager)
- Android学习(八) Notification知识整合
- Linux Notification 学习
- Android学习之Notification
- Linux Notification chain学习
- Android Volley入门到精通:初识Volley的基本用法(示例,出错代码)
- #UPCF Round1 D - Vika and Squares
- Oracle启用远程访问&开启共享模式
- iOS开发高手进阶之路
- iOS网络协议----HTTP/TCP/IP浅析
- Notification学习(1)
- 树形结构的处理——组合模式(一):设计杀毒软件的框架结构
- Hibernate使用自定义脚本替换注解或者xml文件中的自动生成表结构
- dede安装出现dir 织梦cms重新安装出现dir怎么办
- Sicily 1920. Divide The Stones
- JavaScript基础——高级技巧
- 在Python3.4下,用cx_freeze打包PyQt4程序
- 嵌入式开发环境准备
- 视音频数据处理入门:H.264视频码流解析