Несколько уведомлений с одним значком строки состояния в Android - PullRequest
7 голосов
/ 07 сентября 2010

Я использую пользовательское уведомление ... как я могу установить, что уведомление не показывается? И перечислить эти уведомления?это мой код ...

public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "coming", Toast.LENGTH_LONG).show();
        Bundle descBundle = intent.getExtras();
        CharSequence desc = descBundle.getString("description");
        int reminderId = descBundle.getInt("reminderId");
        NotificationManager mNotificationManager;
        mNotificationManager = (NotificationManager) context
                .getSystemService(Context.NOTIFICATION_SERVICE);
        PendingIntent contentIntent = PendingIntent.getActivity(context,
                reminderId, new Intent(), PendingIntent.FLAG_UPDATE_CURRENT);
        RemoteViews contentView = new RemoteViews(context.getPackageName(),
                R.layout.main);
        contentView.setImageViewResource(R.id.image, R.drawable.reminder_1);
        contentView.setTextViewText(R.id.text, desc);
        Notification notifyDetails = new Notification();
        notifyDetails.icon = R.drawable.reminder_1;
        notifyDetails.when = System.currentTimeMillis();
        notifyDetails.tickerText = desc;
        notifyDetails.iconLevel = 1;
        notifyDetails.number = reminderId;
        notifyDetails.contentView = contentView;
        notifyDetails.contentIntent = contentIntent;
        mNotificationManager.notify(0, notifyDetails);
    }

я использую этот код для отображения уведомления ... но он показывает только одно содержимое уведомления ... но значок не показывает уведомления ...

Ответы [ 2 ]

3 голосов
/ 06 марта 2012

Помните, что если вы хотите показывать несколько уведомлений для разных объектов, вам нужно назначить разные идентификаторы уведомлений для каждого из них.

Например, если у вас есть 2 разных объекта, вы должны вызвать

mNotificationManager.notify(0, notifyDetails);

и

mNotificationManager.notify(1, notifyDetails);

Если вы этого не сделаете, Уведомление всегда будет единым и будет всегда обновляться.

2 голосов
/ 17 декабря 2010

Каждый значок соответствует одному уведомлению;вы не можете связать несколько уведомлений с одним экземпляром элемента на панели уведомлений.

Однако вы можете наложить число поверх вашего значка (например, чтобы показать количество событий, которое представляет значок), как некоторые SMSи приложения электронной почты делают.

Это делается с помощью переменной экземпляра number, равной Notification, как указано в фрагменте кода выше.1011 * Чтобы быть более понятным: если вы хотите несколько уведомлений, вам нужно создать несколько Notification объектов и несколько раз вызвать NotificationManager.notify().

Каждый Notification может создать только один значок, может иметь один кусоксодержимого внутри области уведомлений, и может иметь один Intent связанный с ним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...