NotificationManager, несколько значков, но только один может запускать действие

#android #notifications #statusbar

#Android #уведомления #строка состояния

Вопрос:

У меня есть приложение, которое может получать сообщения из нескольких источников. Я бы хотел поместить уведомление в строку состояния, чтобы пользователь знал о каждом источнике.

Теперь, если я укажу уникальный notifyId_ в вызове: mNotificationManager.notify(notifyId_, notifyDetails);

Android помещает несколько значков в строку состояния, но мне нужен только один значок. Если я использую тот же notifyId_, я получаю один значок, но затем при просмотре сведений об уведомлении отображается только один. Есть ли какой-нибудь способ получить один значок с несколькими уникальными идентификаторами?

Большая проблема. Если я использую несколько значков и уникальных идентификаторов, Android (2.2) не будет корректно запускать PendingIntent, когда ожидается более 1 намерения. Я протестировал свои 3 источника, каждый из которых работает отдельно. Как только у меня появится более одного значка в строке состояния, можно запустить только одно действие, другие говорят: ошибка отправки contentintent pendingintentcanceledexception окно уже сфокусировано, игнорируя усиление фокуса

Код выглядит так:

 int notifyId_ = 237;
public void createNotification(String source, String person)
{
    notifyId_  ;
    Context context = getApplicationContext();

    Intent notifyIntent = new Intent(context, MessengingActivity.class);
    notifyIntent.putExtra("name", person);
    notifyIntent.putExtra("notifyId", notifyId_);

    PendingIntent pi = PendingIntent.getActivity(SentinelActivity.this, 0, notifyIntent, 
            Intent.FLAG_ACTIVITY_MULTIPLE_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);


    Notification notifyDetails = new Notification(R.drawable.icon, "Text message(s) from "   source, System.currentTimeMillis());
    notifyDetails.setLatestEventInfo(context, source, "Conversation updated", pi);
    NotificationManager mNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    mNotificationManager.notify(notifyId_, notifyDetails);
}
  

спасибо за любую информацию!

Ответ №1:

Используйте атрибут number в объекте Notification

Комментарии:

1. можете ли вы, пожалуйста, привести пример