创建通知有两种
- Notification直接创建
Notification notification = new Notification();
notification.flags = Notification.FLAG_AUTO_CANCEL; // 点击通知后通知在通知栏上消失
notification.defaults = Notification.DEFAULT_ALL; // 设置默认的提示音、振动方式、灯光等
notification.largeIcon = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);//设置大图标
notification.when = System.currentTimeMillis(); // 设置通知发送的时间戳
Intent intent = new Intent(MainActivity.this, MainActivity.class);
notification.contentIntent = PendingIntent.getActivity(MainActivity.this, 123, intent, PendingIntent.FLAG_UPDATE_CURRENT);
((NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE)).notify(1, notification); // 发送系统通知
- Notification.Build创建者模式创建
PendingIntent pi = PendingIntent.getActivity(MainActivity.this, 0x001,
new Intent(MainActivity.this, SecondActivity.class),
PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(
MainActivity.this).setAutoCancel(true) // 点击通知后通知在通知栏上消失
.setContentIntent(pi)// 设置通知的点击事件
.setDefaults(Notification.DEFAULT_ALL) // 设置默认的提示音、振动方式、灯光等
.setWhen(System.currentTimeMillis()) // 设置通知发送的时间戳
.setContentText("Content Text") // 内容
.setContentTitle("Content Title"); // 标题
((NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE))
.notify(1, builder.build());
- 补充
PendingIntent用于描述Intent及其最终的行为.
你可以通过
getActivity(Context context, int requestCode, Intent intent, int flags)系列方法从系统取得一个用于启动一个Activity的PendingIntent对象,
可以通过
getService(Context context, int requestCode, Intent intent, int flags)方法从系统取得一个用于启动一个Service的PendingIntent对象
可以通过
getBroadcast(Context context, int requestCode, Intent intent, int flags)方法从系统取得一个用于向BroadcastReceiver的Intent广播的PendingIntent对象