У меня есть вопрос: я хочу сделать уведомление в строке состояния. Но при нажатии на нее он просто очищает и не запускает никаких намерений. Как я могу это сделать?
Intent intent;
intent= new Intent(myclass.this, myclass.class);
PendingIntent pi = PendingIntent.getActivity(myclass.this, 0, intent, 0);
String body = "This is a test message";
String title = "test msg";
Notification n = new Notification(R.drawable.ic_launcher, body,System.currentTimeMillis());
n.setLatestEventInfo(myclass.this, title, body, pi);
n.defaults = Notification.DEFAULT_ALL;
nm.notify(uniqueID, n);
С помощью этого кода, когда уведомление будет поднято, и я нажму на него, новое намерение будет создано и показано. Я не хочу создавать никаких новых намерений. Просто очистите уведомление.
Проходить
PendingIntent.getActivity(context, 0, null, PendingIntent. FLAG_ONE_SHOT)
n.flags |= Notification.FLAG_AUTO_CANCEL; // just like that teoRetik says
Из официальной документации:
Чтобы очистить уведомление о состоянии, когда пользователь выбирает его из окна уведомлений, добавьте флаг "FLAG_AUTO_CANCEL" в ваше уведомление. Вы также можете очистить его вручную с помощью cancel (int), передав ему идентификатор уведомления или очистив все ваши уведомления с помощью cancelAll().
n.flags |= Notification.FLAG_AUTO_CANCEL;
, Ред.