我有一个服务,可以在前台运行上传任务,同时在通知中显示进度。由于用户可能会使用不同ID请求进行多次上传,因此将运行两个或更多前台服务。一切都很好,但我想用这段代码显示所有任务的通知和进度。
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ID_DEFAULT)
.setSmallIcon(R.drawable.ic_file_upload_white_24dp)
.setContentTitle(getString(R.string.app_name))
.setContentText(caption)
.setProgress(100, percentComplete, false)
.setContentInfo(String.valueOf(percentComplete +"%"))
.setOngoing(true)
.setAutoCancel(false);
NotificationManager manager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(code, builder.build());
startForeground(code,builder.build());
但不幸的是,通知只会被覆盖,但如果我删除startForeground(),那么一切都能正常工作,根据正在进行的任务数量显示多个进度通知,但系统可能会在内存不足时杀死进程,这就是为什么我想让它在前台运行。那么我要如何在前台显示与正在进行的任务数量相等的通知呢?