2014-02-02 3 views
0

После прочтения нескольких сообщений я пробовал все, чтобы генерировать новое уведомление для каждого предупреждения с использованием уникального идентификатора. Однако это не работает. Ниже мой код: -Android Не удалось создать несколько уведомлений из моего приложения

    //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 каждый раз, когда я генерировать уведомления. Но все-таки я получаю только одно уведомление независимо от того, сколько раз я начинаюForeground называется ??

Пожалуйста, помогите!

Спасибо!

+0

вы проверили 'номер id', который является уникальным или нет? –

+0

@Shayanpourvatan да, я проверил .... его уникальный каждый раз – user1122549

+0

см. Мой ответ по ссылке для отправки нескольких уведомлений, http://stackoverflow.com/questions/21108421/multiple-notifications-for-one-activity/21108440# 21108440 –

ответ

0

Это потому, что есть всегда работает только один режим работы переднего плана. Услуги - это одиночные игры по природе, не может быть двух экземпляров одной и той же службы.

Если вы хотите просто отправить несколько уведомлений, вы должны использовать notification manager, notify() method

+0

Спасибо @Budius !! Ваше объяснение действительно очистило мою концепцию здесь! – user1122549

1

Вы не должны генерировать случайные id, используя последовательность id с будет более безопасным и обеспечить, чтобы все id s являются уникальными

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()); 
} 

Я надеюсь, что это помогает

Смежные вопросы