在阅读了多篇帖子后,我尝试了所有内容,使用唯一ID为每个提醒生成新通知。但这不起作用。以下是我的代码: -
//Generate random id for notification Random r=new Random(); int id=r.nextInt(9999); PendingIntent intent =PendingIntent.getActivity(getApplicationContext(), id, notificationIntent, 0); Builder notice2=new Notification.Builder(getApplicationContext()) .setContentTitle(call.getName()) .setAutoCancel(true) .setContentIntent(intent) .setContentText("Context") .setSmallIcon(com.project.calltracker.R.drawable.ic_alert) .setLargeIcon(BitmapFactory.decodeResource(getResources(), com.project.calltracker.R.drawable.ic_logo)); startForeground(id, notice2.getNotification());
正如您所看到的,每次生成通知时,我都会使用随机整数作为Id。但是无论我多少次调用startForeground,我仍然只收到一个通知?
请帮忙!
谢谢!
答案 0 :(得分:1)
您不必生成随机id
,使用id
序列会更安全,并确保所有id
都是唯一的
PendingIntent intent = null;
Builder notice2=null;
int N = 1000; //set this value
for(int id=1;id<N; id++){
intent =PendingIntent.getActivity(getApplicationContext(), id, notificationIntent, 0);
notice2=new Notification.Builder(getApplicationContext())
.setContentTitle(call.getName())
.setAutoCancel(true)
.setContentIntent(intent)
.setContentText("Context")
.setSmallIcon(com.project.calltracker.R.drawable.ic_alert)
.setLargeIcon(BitmapFactory.decodeResource(getResources(), com.project.calltracker.R.drawable.ic_logo));
startForeground(id, notice2.getNotification());
}
我希望它有所帮助
答案 1 :(得分:0)
那是因为总有一个前台服务正在运行。服务本质上是单例,不能有2个相同服务的实例运行。
如果您只想发送多个通知,请使用notification manager, notify() method