Android基础-------Android通知Notification
Android通知Notification
简介:
android通知,是Android系统一个比较有特色的功能,当某个应用希望向用户发送一些提示信息,而该程序又不在前台运行的时候,这时候就需要用到通知,它会在状态栏上方显示通知图标和一些提示文字
功能作用:
1.显示接收到短消息、即使消息等信息 (如QQ、微信、新浪、短信)
2.显示客户端的推送消息(如有新版本发布,广告,推荐新闻等)
3.显示正在进行的事物(例如:后台运行的程序)(如音乐播放器、版本更新时候的下载进度等)
学习思路
Notificaiton – service – BroadcastReceiver – Intent(flag、Action等属性应用) – PendingIntent
一个Notificaiton通知的拓展使用就要涉及与4大组建的配合,所以学好整体的知识体系。
参考文档及使用教程:
设计文档 :
官方:http://developer.android.com/design/patterns/notifications.html
译文:http://adchs.github.io/patterns/notifications.html
使用教程 :http://developer.android.com/training/notify-user/index.html
开发文档 :http://developer.android.com/reference/android/app/Notification.html
1.前言
- 1 .基本布局
(1)普通视图:
高度64dp
(2)大视图的通知在展开前也显示为普通视图
元素:
1. 标题 Title/Name
2. 大图标 Icon/Photo
3. 内容文字
4. 内容信息 MESSAGE
5. 小图标 Secondary Icon
6. 通知的时间 Timestamp,默认为系统发出通知的时间,也可通过setWhen()来设置
- 2.必要的类
状态通知栏主要涉及到2个类: Notification 和 NotificationManager
Notification为通知信息类,它里面对应了通知栏的各个属性
NotificationManager : 是状态栏通知的管理类,负责发通知、清除通知等操作。
注意:NotificationManager 是一个系统Service,所以必须通过 getSystemService(NOTIFICATION_SERVICE)方法来获取,方法如下
NotificationManager mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
2.使用流程
- 1.流程模块
第一步:创建一个通知栏的Builder构造类 (Create a Notification Builder)
第二步:定义通知栏的Action (Define the Notification’s Action)
第三步:设置通知栏点击事件 (Set the Notification’s Click Behavior)
第四步:通知 (Issue the Notification)
- 2.代码模块
第一步:获取状态通知栏管理:
NotificationManager mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
第二步:实例化通知栏构造器NotificationCompat.Builder:
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this);
第三步:对Builder进行配置:
mBuilder.setContentTitle("测试标题")//设置通知栏标题 .setContentText("测试内容") /"font-family:Arial;">/设置通知栏显示内容 .setContentIntent(getDefalutIntent(Notification.FLAG_AUTO_CANCEL)) //设置通知栏点击意图 // .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
3.对应的各个方法的属性
(1)方法:设置提醒标志符Flags
(2)方法:.setDefaults(int defaults) (NotificationCompat.Builder中的方法,用于提示)
(3)方法:setVibrate(long[] pattern)
(4)方法:.setLights(intledARGB ,intledOnMS ,intledOffMS )
(5)方法:.setSound(Uri sound)
(6)方法:.setPriority(int pri)
(7)方法:setOngoing(boolean ongoing)
(8)方法:setProgress(int max, int progress,boolean indeterminate)4.设置通知栏PendingIntent
1)什么是PendingIntent
2)PendingIntent什么用
3)相关属性和方法
- 5.发送通知请求
未完待续….
更多相关文章
- 解决国行安卓(Android)手机无谷歌(Google)服务的一个参考方法
- Android属性动画—实现第三方登录的上拉展开,下拉隐藏
- Android在高jar包版本的工程中修改方法
- Android仿虾米音乐播放器之通知栏notification解析
- WebView---Android中调用js方法及js中调用本地方法
- 【Android】引入百度定位android:process=":remote",导致onCreate
- Android xml application属性详解