Обработка нескольких уведомлений / уведомлений о штабелировании из GCM
Я только что реализовал GCM и уведомления в своем Android-приложении, поступающем из веб-сервера на основе Apache / PHP.
Уведомления уже работают, но я застрял в штабелировании уведомлений, как описаноВот.
В моем приложении есть два типа уведомлений, использующих данные, поступающие от службы GCM:
Тип 1 (Сообщения):
[data] => Array
(
[t] => 1
[other data...]
)
Тип 2 (Новости):
[data] => Array
(
[t] => 2
[other data...]
)
Эти 2 типа являются совершенно разными уведомлениями, и я хотел бы сложить их оба отдельно друг от друга, но я не могу заставить это работать. Я хотел бы сложить их так, как только есть несколько уведомлений:
Вид по умолчанию
Расширенный вид
2 идентификатора уведомления и атомное целое число
Я попытался использовать 2 разных идентификатора уведомлений, чтобы уведомления с одинаковым типом переопределялись.
if (msg.get("t").toString().equals("1")) {
notificationNumber = messageCounter.incrementAndGet();
} else {
notificationNumber = newsCounter.incrementAndGet();
}
[...]
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
.setNumber(notificationNumber);
Если одновременно отправляются 2 сообщения, все работает нормально, и счетчик показывает 2. Но если между двумя уведомлениями происходит небольшая задержка, счетчик переключается на 1.
Уникальные идентификаторы уведомлений
Я также пытался использовать уникальные идентификаторы, созданные с
Date now = new Date();
Notification_id = now.getTime();
так что нет никакой укладки или переопределения вообще.
ВопросКак я могу решить мою проблему? Могу ли я получить доступ к содержимому ранее отправленных уведомлений, чтобы я мог показывать каждое сообщение в одной строке, как в расширенном представлении Gmail? Как я могу проверить, какие / сколько уведомлений в настоящее время отображаются?
Длинный вопрос, большое спасибо!