Android无法从我的应用生成多个通知

时间:2014-02-02 14:47:57

标签: android android-notifications

在阅读了多篇帖子后,我尝试了所有内容,使用唯一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,我仍然只收到一个通知?

请帮忙!

谢谢!

2 个答案:

答案 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