Android发送通知(Notification)
2019-09-25 本文已影响0人
好学人
Android 8.0(<API 26)
// 创建通知(标题、内容、图标)
Notification notification = new Notification.Builder(this)
.setContentTitle("通知标题")
.setContentText("通知内容")
.setSmallIcon(R.mipmap.ic_launcher)
.build();
// 创建通知管理器
NotificationManager manager = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
// 发送通知
manager.notify(1, notification);
Android 8.0(≥API 26)
Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
// 1. 创建一个通知(必须设置channelId)
Context context = getApplicationContext();
String channelId = "ChannelId"; // 通知渠道
Notification notification = new Notification.Builder(context)
.setChannelId(channelId)
.setSmallIcon(R.mipmap.icon_bill_64x64)
.setContentTitle("通知标题")
.setContentText("通知内容")
.build();
// 2. 获取系统的通知管理器(必须设置channelId)
NotificationManager notificationManager = (NotificationManager) context
.getSystemService(NOTIFICATION_SERVICE);
NotificationChannel channel = new NotificationChannel(
channelId,
"通知的渠道名称",
NotificationManager.IMPORTANCE_DEFAULT);
notificationManager.createNotificationChannel(channel);
// 3. 发送通知(Notification与NotificationManager的channelId必须对应)
notificationManager.notify(id, notification);
PendingIntent
// 注意:PendingIntent.FLAG_UPDATE_CURRENT
Intent intent = new Intent(context, MainActivity.class);
intent.putExtra(name, value);
PendingIntent pendingIntent = PendingIntent.getActivity(
context, REQUEST_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Notification notification = new Notification.Builder(this)
.setContentTitle(title)
.setContentText(text)
.setSmallIcon(icon)
.setContentIntent(pendingIntent)
.build();