notification 使用

来源:互联网 发布:回收站数据恢复 编辑:程序博客网 时间:2024/06/06 03:10
Android Notification通知详解
002 
003根据activity的生命周期,在activity不显示时,会执行onStop函数(比如按下home键),所以你在onStop函数(按退出键除外)里面把notification放在通知栏里,再此显示时,把notification从通知栏里去掉。或者,只要程序在运行就一直显示通知栏图标。
004 
005         
006 
007下面对Notification类中的一些常量,字段,方法简单介绍一下:
008常量:
009DEFAULT_ALL    使用所有默认值,比如声音,震动,闪屏等等
010DEFAULT_LIGHTS 使用默认闪光提示
011DEFAULT_SOUNDS 使用默认提示声音
012DEFAULT_VIBRATE 使用默认手机震动
013【说明】:加入手机震动,一定要在manifest.xml中加入权限:
014<uses-permission android:name="android.permission.VIBRATE" />
015以上的效果常量可以叠加,即通过
016notification.defaults =DEFAULT_SOUND|DEFAULT_VIBRATE; 
017notification.defaults |= DEFAULT_SOUND (最好在真机上测试,震动效果模拟器上没有)
018 
019             
020 
021//设置flag位
022FLAG_AUTO_CANCEL  该通知能被状态栏的清除按钮给清除掉
023FLAG_NO_CLEAR     该通知能被状态栏的清除按钮给清除掉
024FLAG_ONGOING_EVENT 通知放置在正在运行
025FLAG_INSISTENT 是否一直进行,比如音乐一直播放,知道用户响应
026 
027           
028 
029常用字段:
030contentIntent  设置PendingIntent对象,点击时发送该Intent
031defaults 添加默认效果
032flags 设置flag位,例如FLAG_NO_CLEAR等
033icon 设置图标
034sound 设置声音
035tickerText 显示在状态栏中的文字
036when 发送此通知的时间戳
037 
038                 
039 
040NotificationManager常用方法介绍:
041public void cancelAll() 移除所有通知(只是针对当前Context下的Notification)
042public  void cancel(int id) 移除标记为id的通知 (只是针对当前Context下的所有Notification)
043public  void notify(String tag ,int id, Notification notification) 将通知加入状态栏,标签为tag,标记为id
044public  void notify(int id, Notification notification) 将通知加入状态栏,标记为id
045 
046              
047 
048?
049package com.ljq.activity;
050  
051import android.app.Activity;
052import android.app.Notification;
053import android.app.NotificationManager;
054import android.app.PendingIntent;
055import android.content.Intent;
056import android.graphics.Color;
057import android.os.Bundle;
058  
059public 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(this0, 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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 房地产项目完成后企业员工怎么办啊 韩服lol延迟太高怎么办 LOL等级奖励卡掉怎么办 魔域手机号换了怎么办 买的qq号找回了怎么办 买dnf账号被找回怎么办 微博账号已锁定怎么办 抖音账号封手机怎么办 手机号码绑定被别人占用了怎么办 DNF账号给找回了怎么办 转转上被骗了200怎么办 7彩账号被锁定怎么办 猪不吃食没精神怎么办 cf手游签到没给怎么办 cf说停止运行了怎么办 cf端游永久禁赛怎么办 cf端游爆破怕死怎么办 王者荣耀累计扣分12分怎么办 去医院看病没带身份证怎么办 ps4星战2鬼服怎么办 冒险岛英雄五转怎么办 6儿童视力低常怎么办 腰干活累的酸痛怎么办 狗狗体力很差怎么办啊 脉差总是五十多怎么办 吃过敏药嗜睡乏力怎么办 写字紧张心跳的快手抖怎么办 怀孕食欲差没精神怎么办 爬个三楼就喘了怎么办 头被篮球砸了怎么办 打球手指肿了很久怎么办 客人吃饭跑单了怎么办 脑子总是记不住东西怎么办 穿的鞋有味道怎么办 生完孩子血糖高怎么办 生了孩子子宫大怎么办 生完孩子阴吹怎么办 怀孕初期感冒嗓子发炎怎么办 脑子转不过来弯怎么办 他说我道行不深怎么办 鞋子内测磨破了怎么办