У меня есть приложение, которое помимо прочего имеет встроенную систему обмена сообщениями. (Так что это не sms, электронная почта и так далее). Я использую базу данных (локальную и удаленную) для хранения сообщений между пользователями, а syncAdapter позволяет синхронизировать записи с локального на удаленный и наоборот.Поведение Android-уведомлений
Внутри адаптера синхронизации Я также показываю уведомление, когда новое сообщение поступает на мой планшет. Я использую этот код для его генерации:
String text_notificare_titlu = "Message from " + self.getSursanume();
String text_notificare_continut = self.getTitlu();
final NotificationManager mgr = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification note = new Notification(R.drawable.new_50, "New message for my app!", System.currentTimeMillis());
note.defaults |= Notification.DEFAULT_SOUND;
note.defaults |= Notification.DEFAULT_VIBRATE;
note.defaults |= Notification.FLAG_AUTO_CANCEL;
// This pending intent will open after notification click
PendingIntent xx = PendingIntent.getActivity(context, i, new Intent(context, MesajeActivity.class), 0);
note.setLatestEventInfo(context, text_notificare_titlu, text_notificare_continut, xx);
note.number = i;
mgr.notify(NOTIFY_ME_ID, note);
Теперь мои проблемы:
- Autocancel не работает. Когда я нажимаю на уведомление, я хочу, чтобы уведомление исчезло после запуска намерения, но оно не
- Я хочу, чтобы мое намерение было показано в уведомлении, чтобы указать его конкретный (тот, который содержит INBOX), поэтому MesajeActivity.class. Он появляется, но если мое приложение было сведено к минимуму (скрыто), когда я нажимаю уведомление, новая активность INBOX отображается в верхней части предыдущей активности INBOX. Это похоже на то, что у вас есть два разных вида деятельности друг на друга. Так что если:
- мое приложение запускается, и пользователь находится в INBOX активности (MesajeActivity.class)
- через некоторое время дисплей выключается,
- , когда приходит время, SyncAdapter пожаров,
- находит новое сообщение,
- создает уведомление,
- пользователь нажимает на уведомление,
- показана активность INBOX,
- Когда я нажимаю BACK, активность INBOX исчезает и появляется еще одна активность INBOX (активность INBOX ранее открытого приложения).
Понимаете ли вы, или я должен попытаться объяснить лучше?
Как я могу решить эти 2 проблемы?
Спасибо
Замечательно, теперь он отлично работает. Вы правильно поняли, и второе решение, которое вы мне дали, сработало. Теперь клик уведомлений обновляет отображаемую информацию MessagesActivity. спасибо – user1137313