可以使用不同的通知ID来区分前台服务通知和其他通知。示例代码如下:
private static final int NOTIFICATION_ID_SERVICE = 1;
private static final int NOTIFICATION_ID_ACTION = 2;
private void startForeground() {
// Create a notification channel for the service notification.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel serviceChannel = new NotificationChannel(
NOTIFICATION_CHANNEL_ID,
"Foreground Service Channel",
NotificationManager.IMPORTANCE_DEFAULT
);
NotificationManager manager = getSystemService(NotificationManager.class);
manager.createNotificationChannel(serviceChannel);
}
// Create the notification for the foreground service.
Notification notification = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID)
.setContentTitle("My Foreground Service")
.setContentText("Running...")
.setSmallIcon(R.drawable.ic_notification)
.build();
// Start the service in the foreground with the notification.
startForeground(NOTIFICATION_ID_SERVICE, notification);
}
private void showActionNotification() {
// Create the notification for an action.
Notification notification = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID)
.setContentTitle("Action Notification")
.setContentText("Something happened...")
.setSmallIcon(R.drawable.ic_notification)
.build();
// Show the notification.
NotificationManagerCompat manager = NotificationManagerCompat.from(this);
manager.notify(NOTIFICATION_ID_ACTION, notification);
}
在这个示例中,我们创建了两个不同的通知ID:NOTIFICATION_ID_SERVICE
和NOTIFICATION_ID_ACTION
,其中NOTIFICATION_ID_SERVICE
用于启动前台服务时显示的通知,而NOTIFICATION_ID_ACTION
用于其他通知。
当我们需要显示前台服务通知时,我们调用startForeground()
方法,并传递NOTIFICATION_ID_SERVICE
和前台服务通知的内容。
当我们需要显示其他通知时,我们调用showActionNotification()
方法,并传递NOTIFICATION_ID_ACTION
和其他通知的内容。
使用不同的通知ID可以确保前台服务通知和其他通知