Android开发学习之添加StatusBarNotification(状态栏通知)
2016-08-26 16:45
453 查看
1.StatusBarNotification介绍
顾名思义,就是对状态栏的一些操作。当我们执行一个操作,想在状态栏上给出提示时,就是这里想要实现的功能。比如未接电话,未读过的短信,文件下载等等... ...
2.分析:
这里要涉及到3个东西:PendingIntent,Notification,NotificationManager。
(1)PendingIntent 即将发生的Intent,其实就是状态栏拉下来以后供点击的几个选项。这里就牵涉到好几个问题,与下面函数中的参数一一对应起来。
PendingIntent.getActivity (Context context, int requestCode, Intent intent, int flags)
contenxt一般是切换至intent的Activity;
requestCode一般取0;
intent是已经设置好切换Activity的intent(这里的Activity要setClass设置好切换的Activity);
flags有4个选项,一般选PendingIntent.FLAG_UPDATE_CURRENT。
(2)Notification 设置好的一些通知的信息,以及通知的方式等等
Notification notification = new
Notification(icon, tickerText,
when)
icon是状态栏上的图标,我们可以把相应的图片放在drawble文件夹下,这时系统会自动为图片文件添加一个id,我们只要使用R.drawable.xxx就行了;
tickerText是状态栏上通知的文字信息;
when是什么时候给出通知,一般使用System.currentTimeMillis()获取当前时间。
注:
notification.flags = Notification.FLAG_NO_CLEAR(图标无法清除,QQ就是这样实现的)
notification.flags = Notification.FLAG_AUTO_CANCEL(点击后自动清除);
(3)NotificationManager 管理状态栏的一个类
NotificationManager nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(id, notification); //给出通知
notificationManager.cancel(id); //取消通知
3.一个例子
代码:
MainActivity.java
点击按钮的onClick()方法中相应的操作:
Intent intent = new Intent(MainActivity.this, MainActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(MainActivity.this, 0, intent , PendingIntent.FLAG_UPDATE_CURRENT);
Notification notification = new Notification(R.drawable.notification_icon, "小石头上线", System.currentTimeMillis());
notification.flags = Notification.FLAG_AUTO_CANCEL;
notification.setLatestEventInfo(MainActivity.this, "QQ", "小石头上线", contentIntent);
NotificationManager notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(0, notification);
效果:
顾名思义,就是对状态栏的一些操作。当我们执行一个操作,想在状态栏上给出提示时,就是这里想要实现的功能。比如未接电话,未读过的短信,文件下载等等... ...
2.分析:
这里要涉及到3个东西:PendingIntent,Notification,NotificationManager。
(1)PendingIntent 即将发生的Intent,其实就是状态栏拉下来以后供点击的几个选项。这里就牵涉到好几个问题,与下面函数中的参数一一对应起来。
PendingIntent.getActivity (Context context, int requestCode, Intent intent, int flags)
contenxt一般是切换至intent的Activity;
requestCode一般取0;
intent是已经设置好切换Activity的intent(这里的Activity要setClass设置好切换的Activity);
flags有4个选项,一般选PendingIntent.FLAG_UPDATE_CURRENT。
(2)Notification 设置好的一些通知的信息,以及通知的方式等等
Notification notification = new
Notification(icon, tickerText,
when)
icon是状态栏上的图标,我们可以把相应的图片放在drawble文件夹下,这时系统会自动为图片文件添加一个id,我们只要使用R.drawable.xxx就行了;
tickerText是状态栏上通知的文字信息;
when是什么时候给出通知,一般使用System.currentTimeMillis()获取当前时间。
注:
notification.flags = Notification.FLAG_NO_CLEAR(图标无法清除,QQ就是这样实现的)
notification.flags = Notification.FLAG_AUTO_CANCEL(点击后自动清除);
(3)NotificationManager 管理状态栏的一个类
NotificationManager nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(id, notification); //给出通知
notificationManager.cancel(id); //取消通知
3.一个例子
代码:
MainActivity.java
点击按钮的onClick()方法中相应的操作:
Intent intent = new Intent(MainActivity.this, MainActivity.class);
PendingIntent contentIntent = PendingIntent.getActivity(MainActivity.this, 0, intent , PendingIntent.FLAG_UPDATE_CURRENT);
Notification notification = new Notification(R.drawable.notification_icon, "小石头上线", System.currentTimeMillis());
notification.flags = Notification.FLAG_AUTO_CANCEL;
notification.setLatestEventInfo(MainActivity.this, "QQ", "小石头上线", contentIntent);
NotificationManager notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
notificationManager.notify(0, notification);
效果:
相关文章推荐
- Android开发系列---UI篇---添加和消除通知栏图标
- 【Android开发学习40】在GLSurfaceView之上添加SurfaceView层
- android开发 - 状态栏通知
- Android开发学习笔记:为动态添加的Spinner控件绑定数据源以及监听事件
- Android开发 -- 状态栏通知Notification、NotificationManager详解
- Android 程式开发:(五)发送通知 —— 5.1“状态栏”Notification通知
- Android 开发工具学习之 配置构建路径(configure build path)、更改系统库、添加引用的库(Java和Android)
- 【Android开发】消息提示框与对话框-使用Notification在状态栏上显示通知
- Android xmpp开发 asmack获取离线在线添加好友消息 及 好友上线下线通知
- Android开发学习笔记:为动态添加的EditText控件绑定值改变监听事件
- 【Android开发学习21】写一个简单的乘法计算器,并添加退出菜单
- Android xmpp开发 asmack获取离线在线添加好友消息 及 好友上线下线通知
- Android应用开发学习之状态栏通知
- Android学习——状态栏通知
- Android开发学习:向模拟器的sdcard中添加文件
- 【Android开发学习30】动态创建多个按钮,并给每个按键添加监听事件
- Android开发学习之Notification通知的简单实现
- Android开发学习:向模拟器的sdcard中添加文件
- android 开发零起步学习笔记(十二):android监听事件添加动作的三种方式
- Android应用开发基础篇(2)-----Notification(状态栏通知)