У меня есть странная проблема с уведомлениями.
Я создал постоянное уведомление, и я хочу иногда обновлять уведомление и отображать новый текст кода.
Когда я создаю уведомление, текст тикера отображается правильно.
Когда я обновляю уведомление в первый раз (с приведенным ниже кодом), текст нового тикера отображается правильно.
Когда я обновляю уведомление во второй раз с точно таким же кодом и теми же аргументами, что и в первый раз (в частности, тем же самым новым тикером текста), текст тикера не отображается.
В чем проблема?
Код:
mNotification.tickerText = newTickerText;
mNotification.when = System.currentTimeMillis();
mNotification.setLatestEventInfo(activity, title, message, pIntent); // I dont think these arguments are relevant, but I can post more code if you want
nm.notify(42, mNotification); // nm is the NotificationManager
Редактировать:
Хорошо, я нашел причину, Android не хочет отображать текст тикера снова, если он такой же, как раньше. Есть ли обходной путь для этого?
Редактировать # 2:
Мое приложение - многопользовательская игра, я должен держать сетевой сокет открытым в течение времени, когда пользователь подключен.
Но я не хочу внезапно отключать пользователя, когда он получает новое SMS и хочет его прочитать (например). Я хочу, чтобы появилось уведомление о том, что "вы будете отключены через 30 секунд".
У меня проблема выше, когда пользователь подключен, оставьте приложение, вернитесь менее чем через 30 секунд после этого, а затем оставьте заявку еще раз. Я неоднократно выставляю одно и то же сообщение только в том случае, если пользователь многократно уходит и возвращается к моему приложению (что не должно часто возникать, я думаю)
Считаете ли вы, что это может беспокоить пользователя? Что мне делать вместо этого?
Есть ли обходной путь для этого?
Иметь значимо другой текст, который будет стоить пользователю. Не беспокоить пользователя, повторяя одно и то же сообщение.
ОБНОВЛЕНИЕ на основе редактирования
Я хочу, чтобы появилось уведомление о том, что "вы будете отключены через 30 секунд".
Это здорово.
У меня проблема выше, когда пользователь подключен, оставьте приложение, вернитесь менее чем через 30 секунд после этого, а затем оставьте заявку еще раз.
Пользователь вернулся к вашей деятельности, в которой вы должны отменить Notification
, и в этом случае у вас не будет проблем с повторным отображением одного и того же сообщения о тикерах.
У вас может быть два разных текущих кода уведомлений: один, когда пользователь использует приложение, когда пользователь остается. Затем, когда пользователь запускает ваше приложение, вы отменяете свое "неактивное" уведомление и показываете "активное" уведомление. И когда пользователь снова уйдет, просто отмените "активное" уведомление и покажите "неактивным". Таким образом, вы всегда должны получать тикер при отображении "неактивного" уведомления. Если оба уведомления имеют один и тот же значок, пользователь может даже не заметить. Когда соединение завершается, просто скройте оба уведомления, поэтому пользователь узнает, что он отключен.