PendingIntent 的行为有四种值FLAG_ONE_SHOT、FLAG_NO_CREATE、FLAG_CANCEL_CURRENT 和FLAG_UPDATE_CURRENT
FLAG_ONE_SHOT:得到的pi只能使用一次,第二次使用该pi时报错
FLAG_NO_CREATE: 当pi不存在时,不创建,返回null
FLAG_CANCEL_CURRENT: 每次都创建一个新的pi
FLAG_UPDATE_CURRENT: 不存在时就创建,创建好了以后就一直用它,每次使用时都会更新pi的数据(使用较多)
//状态栏消息通知,并点击跳转
NotificationManager manager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
Notification notification = new Notification(R.drawable.ic_launcher, "This is ticker text", System.currentTimeMillis());
Intent intent = new Intent(this, NotificationActivity.class);
PendingIntent pi = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
notification.setLatestEventInfo(this, "This is content title", "This is content text", pi);
manager.notify(1, notification);
//状态栏消息通知取消
NotificationManager manager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
manager.cancel(1);
//发送音频
Uri soundUri = Uri.fromFile(new File("/system/media/audio/ringtones/Basic_tone.ogg"));
notification.sound = soundUri;
//手机震动 (下标为0 的值表示手机静止的时长,下标为1 的值表示手机振动的时长,下标为2 的值又表示手机静止的时长)
long[] vibrates = {0, 1000, 1000, 1000};
notification.vibrate = vibrates;
<uses-permission android:name="android.permission.VIBRATE" /> (震动权限)
//前置LED灯 (ledARGB 用于控制LED 灯的颜色,红绿蓝。ledOnMS 用于指定LED 灯亮起的时长,以毫秒为单位。ledOffMS用于指定LED 灯暗去的时长,以毫秒为单位。flags 可用于指定通知的一些行为)
notification.ledARGB = Color.GREEN;
notification.ledOnMS = 1000;
notification.ledOffMS = 1000;
notification.flags = Notification.FLAG_SHOW_LIGHTS;
//默认设置
notification.defaults = Notification.DEFAULT_ALL;