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 |
} |
相关推荐
android notification完全解析Demo
主要利用了notification service 和receiver 实现了用户通知栏更新,失败了点击重新下载,下载好了点击自动安装,布局很丑,请根据自己项目的实际需求自行修改
Notification显示音乐下载的界面
类型:NotificationDemo 功能:从网上下载apk存储到手机指定目录,并在通知栏里显示其下载进度,如果下载错误,或者不想要该apk可以删除 涉及知识: 文件流、网络下载链接协议、读写权限、Handler、Notification、...
Android Notification 常见样式代码及发送demo,其中包含源码及一个app-release.apk,可直接发送固定样式,也可自定义样式。可以作为通知测试的小工具,也可作为参考demo。
这个项目整合了Android平台所有Notification的使用方法,有些使用场景不生效,不知道是否是我使用方法有问题。
Android Notification消息框 Toast弹出框用法演示范例,本例中关于 Toast弹出框的演示,演示了适时的 Toast和长时间的 Toast,关于Notification的定义,则演示了高级Notification的用法,自定义4种Notification的...
android Notification
android notification 软件更新
android notification Service 文件下载
android 利用notification 通知栏 实现动态下载.
Android notification进度条 demo,欢迎下载!!!!!!!!!!!!!!!!!!!!!!!!!!!!
android notification 通知 源码 例子
Android NOtification 使用Android NOtification 使用
Convert JSON to Android Notification. This is very useful for push notification (GCM). Usage Notification notification = Json2Notification.from(context).with(json).notification(); NotificationManager ...
简单介绍Android Notification用法 详细介绍NotificationManageService和StatusBarManageService与App层交互过程
了解Android Notification的基本用法
Android Notification通知 简单使用 demo下载。 解决问题:兼容高低版本,帮助用户打开通知开关,android5.x手机状态栏icon是白块问题。 详细文章请参考 ...
各种各样的android Notification效果
kinds of notification