Android的notification
来源:互联网 发布:高数搜题软件哪个好 编辑:程序博客网 时间:2024/06/05 11:28
转载自:http://www.oschina.net/code/snippet_270292_14489
Android Notification通知详解
002
003
根据activity的生命周期,在activity不显示时,会执行onStop函数(比如按下home键),所以你在onStop函数(按退出键除外)里面把notification放在通知栏里,再此显示时,把notification从通知栏里去掉。或者,只要程序在运行就一直显示通知栏图标。
004
005
006
007
下面对Notification类中的一些常量,字段,方法简单介绍一下:
008
常量:
009
DEFAULT_ALL 使用所有默认值,比如声音,震动,闪屏等等
010
DEFAULT_LIGHTS 使用默认闪光提示
011
DEFAULT_SOUNDS 使用默认提示声音
012
DEFAULT_VIBRATE 使用默认手机震动
013
【说明】:加入手机震动,一定要在manifest.xml中加入权限:
014
<uses-permission android:name=
"android.permission.VIBRATE"
/>
015
以上的效果常量可以叠加,即通过
016
notification.defaults =DEFAULT_SOUND|DEFAULT_VIBRATE;
017
notification.defaults |= DEFAULT_SOUND (最好在真机上测试,震动效果模拟器上没有)
018
019
020
021
//设置flag位
022
FLAG_AUTO_CANCEL 该通知能被状态栏的清除按钮给清除掉
023
FLAG_NO_CLEAR 该通知能被状态栏的清除按钮给清除掉
024
FLAG_ONGOING_EVENT 通知放置在正在运行
025
FLAG_INSISTENT 是否一直进行,比如音乐一直播放,知道用户响应
026
027
028
029
常用字段:
030
contentIntent 设置PendingIntent对象,点击时发送该Intent
031
defaults 添加默认效果
032
flags 设置flag位,例如FLAG_NO_CLEAR等
033
icon 设置图标
034
sound 设置声音
035
tickerText 显示在状态栏中的文字
036
when 发送此通知的时间戳
037
038
039
040
NotificationManager常用方法介绍:
041
public
void
cancelAll() 移除所有通知(只是针对当前Context下的Notification)
042
public
void
cancel(
int
id) 移除标记为id的通知 (只是针对当前Context下的所有Notification)
043
public
void
notify(String tag ,
int
id, Notification notification) 将通知加入状态栏,标签为tag,标记为id
044
public
void
notify(
int
id, Notification notification) 将通知加入状态栏,标记为id
045
046
047
048
?
049
package
com.ljq.activity;
050
051
import
android.app.Activity;
052
import
android.app.Notification;
053
import
android.app.NotificationManager;
054
import
android.app.PendingIntent;
055
import
android.content.Intent;
056
import
android.graphics.Color;
057
import
android.os.Bundle;
058
059
public
class
MainActivity
extends
Activity {
060
/** Called when the activity is first created. */
061
@Override
062
public
void
onCreate(Bundle savedInstanceState) {
063
super
.onCreate(savedInstanceState);
064
setContentView(R.layout.main);
065
clearNotification();
066
}
067
068
@Override
069
protected
void
onStop() {
070
showNotification();
071
super
.onStop();
072
}
073
074
@Override
075
protected
void
onStart() {
076
clearNotification();
077
super
.onStart();
078
}
079
080
/**
081
* 在状态栏显示通知
082
*/
083
private
void
showNotification(){
084
// 创建一个NotificationManager的引用
085
NotificationManager notificationManager = (NotificationManager)
086
this
.getSystemService(android.content.Context.NOTIFICATION_SERVICE);
087
088
// 定义Notification的各种属性
089
Notification notification =
new
Notification(R.drawable.icon,
090
"督导系统"
, System.currentTimeMillis());
091
//FLAG_AUTO_CANCEL 该通知能被状态栏的清除按钮给清除掉
092
//FLAG_NO_CLEAR 该通知不能被状态栏的清除按钮给清除掉
093
//FLAG_ONGOING_EVENT 通知放置在正在运行
094
//FLAG_INSISTENT 是否一直进行,比如音乐一直播放,知道用户响应
095
notification.flags |= Notification.FLAG_ONGOING_EVENT;
// 将此通知放到通知栏的"Ongoing"即"正在运行"组中
096
notification.flags |= Notification.FLAG_NO_CLEAR;
// 表明在点击了通知栏中的"清除通知"后,此通知不清除,经常与FLAG_ONGOING_EVENT一起使用
097
notification.flags |= Notification.FLAG_SHOW_LIGHTS;
098
//DEFAULT_ALL 使用所有默认值,比如声音,震动,闪屏等等
099
//DEFAULT_LIGHTS 使用默认闪光提示
100
//DEFAULT_SOUNDS 使用默认提示声音
101
//DEFAULT_VIBRATE 使用默认手机震动,需加上<uses-permission android:name="android.permission.VIBRATE" />权限
102
notification.defaults = Notification.DEFAULT_LIGHTS;
103
//叠加效果常量
104
//notification.defaults=Notification.DEFAULT_LIGHTS|Notification.DEFAULT_SOUND;
105
notification.ledARGB = Color.BLUE;
106
notification.ledOnMS =
5000
;
//闪光时间,毫秒
107
108
// 设置通知的事件消息
109
CharSequence contentTitle =
"督导系统标题"
;
// 通知栏标题
110
CharSequence contentText =
"督导系统内容"
;
// 通知栏内容
111
Intent notificationIntent =
new
Intent(MainActivity.
this
, MainActivity.
class
);
// 点击该通知后要跳转的Activity
112
PendingIntent contentItent = PendingIntent.getActivity(
this
,
0
, notificationIntent,
0
);
113
notification.setLatestEventInfo(
this
, contentTitle, contentText, contentItent);
114
115
// 把Notification传递给NotificationManager
116
notificationManager.notify(
0
, notification);
117
}
118
?
119
//删除通知
120
private
void
clearNotification(){
121
// 启动后删除之前我们定义的通知
122
NotificationManager notificationManager = (NotificationManager)
this
123
.getSystemService(NOTIFICATION_SERVICE);
124
notificationManager.cancel(
0
);
125
126
}
127
}
0 0
- Android-Notification的使用
- Android Notification的使用
- android Notification 的使用
- android Notification 的使用
- Android Notification 的使用
- Android-Notification的使用
- android Notification 的使用
- android Notification 的使用
- android Notification 的使用
- android Notification 的使用
- android Notification 的使用
- android Notification的使用
- android notification 的用法
- android notification的用法
- android Notification 的使用
- android Notification 的使用
- android Notification 的使用
- android Notification 的使用
- 戴尔/DELL服务器厂商最新发布R730服务器采购V4处理器
- webview去掉缩放按钮、边界滚动条
- CentOS 6.5 i386升级内核到3.10.28
- Conversion to Dalvik format failed: Unable to execute dex
- TypeError: expected string or buffer的解决方法
- Android的notification
- 在ListView中嵌套ListView的事件处理(listview显示不全)
- 如何为Eclipse安装主题
- swift3.0回首guard的奇妙之处
- eclipse设置全局主题
- 当ListView有Header时,onItemClick里的position不正确
- springmvc:配置文件总结
- MPAndroidChart饼图PieChart
- Android SDK更新 Connection to http://dl-ssl.google.com refused 解决方法