Я могу создавать уведомления. В настоящее время, когда пользователь получает запрос друга, он говорит «Новый запрос друга от someUsername». Однако, если пользователь получает несколько запросов друг другу, я хочу обновить текст, чтобы сказать «Новые запросы друзей».Android обновляет уведомление и обнаруживает, когда он больше не существует
С моей точки зрения, мне просто нужно изменить текст, используя тот же объект Builder, который я использовал для создания первоначального уведомления.
Моя идея состояла в том, чтобы создать HashMap, сопоставляя все идентификаторы, используемые в NotificationManager's notify(int id, Builder builder)
объектам Builder.
При нажатии на уведомление уведомление исчезает (из-за моего использования setAutoCancel(true)
), однако я не знаю, как это обнаружить, поэтому я могу удалить объект Builder из HashMap.
Причина, по которой я хочу удалить объект Builder, заключается в том, что когда метод HashMap возвращает null
, я буду знать, что будет отображаться «Новый запрос друга от» вместо «Новые запросы друзей».
Если мой алгоритм чрезмерно усложнен, обязательно исправьте меня. В противном случае, как я могу обнаружить, когда уведомление отменено?
Замечание: Я планирую делать то же самое для сообщений и, возможно, других видов уведомлений.
В случае это необходимо, это моя функция, которая создает уведомления (идентификатор будет жёстко сейчас):
private void triggerNotification(String content, Context context) {
Log.i("Thread", "notification triggered");
NotificationCompat.Builder builder =
new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("Anime Chatter")
.setContentText(content);
builder.setAutoCancel(true);
Intent i = new Intent(context, Friends.class);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, i, 0);
builder.setContentIntent(contentIntent);
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(1010, builder.build());
}
Вам не нужен такой же строитель объект, только тот же идентификатор, он заменит уведомление. – jvrodrigues
@jvrodrigues Правильно, он будет «заменять» его, если я использую тот же ID. Но тогда как я знаю, чтобы установить текст в «Новый запрос друга от имени пользователя» и «Новые запросы друзей»? Мне нужен способ узнать, существует ли уведомление с идентификатором или нет. – Kacy
Сохраняя состояние уведомления где-нибудь. –