您的位置:首页 > 移动开发 > Android开发

android点击系统通知Notification,进入指定的activity

2016-04-12 17:46 721 查看
// 创建一个NotificationManager的引用

NotificationManager notificationManager = (NotificationManager)

this.getSystemService(android.content.Context.NOTIFICATION_SERVICE);

// 定义Notification的各种属性
Notification notification =new Notification(R.drawable.icon,
"测试", System.currentTimeMillis());
//FLAG_AUTO_CANCEL   该通知能被状态栏的清除按钮给清除掉
//FLAG_NO_CLEAR      该通知不能被状态栏的清除按钮给清除掉
//FLAG_ONGOING_EVENT 通知放置在正在运行
//FLAG_INSISTENT     是否一直进行,比如音乐一直播放,知道用户响应
notification.flags |= Notification.FLAG_ONGOING_EVENT;


// 将此通知放到通知栏的”Ongoing”即”正在运行”组中

notification.flags |= Notification.FLAG_NO_CLEAR;

// 表明在点击了通知栏中的”清除通知”后,此通知不清除,经常与FLAG_ONGOING_EVENT一起使用

notification.flags |= Notification.FLAG_SHOW_LIGHTS;

//DEFAULT_ALL 使用所有默认值,比如声音,震动,闪屏等等

//DEFAULT_LIGHTS 使用默认闪光提示

//DEFAULT_SOUNDS 使用默认提示声音

//DEFAULT_VIBRATE 使用默认手机震动,需加上权限

notification.defaults = Notification.DEFAULT_LIGHTS;

//叠加效果常量

//notification.defaults=Notification.DEFAULT_LIGHTS|Notification.DEFAULT_SOUND;

notification.ledARGB = Color.BLUE;

notification.ledOnMS =5000; //闪光时间,毫秒

// 设置通知的事件消息
CharSequence contentTitle ="标题"; // 通知栏标题
CharSequence contentText ="内容"; // 通知栏内容

//如果需要跳转到指定的Activity,则需要设置PendingIntent

Intent notificationIntent =new Intent(A.this, B.class);


// 点击该通知后要跳转的Activity

notificationIntent.putExtra("date","需要传递的参数");

// FLAG_UPDATE_CURRENT 更新数据,如果有多个PendingIntent,且requestCode相同,则会替换为最新extra数据
//如果需要通过不同的extra数据,进行处理,就需要requestCode不相同
int requestCode = new Random().nextInt();
PendingIntent contentItent = PendingIntent.getActivity(this, requestCode, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
notification.setLatestEventInfo(this, contentTitle, contentText, contentItent);


// 把Notification传递给NotificationManager

notificationManager.notify(0, notification);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: