Как восстановить предыдущую активность, нажав на уведомление
-
26-09-2019 - |
Вопрос
Когда мое уведомление отключается, я хочу восстановить действие, которое было переведено в фоновый режим, а не начинать новое действие.Я видел несколько ответов об использовании FLAGS, но не знаю, как это реализовать.
contentIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | INTENT.FLAG_ACTIVITY_SINGLE_TOP);
Где мне это поместить в свой код?Я попробовал, но это не сработало.Пожалуйста помоги!
ns = Context.NOTIFICATION_SERVICE;
mNotificationManager = (NotificationManager) getSystemService(ns);
icon = R.drawable.icon;
tickerText = "Short Msg";
when = System.currentTimeMillis();
notification = new Notification(icon, tickerText, when);
context = getApplicationContext();
contentTitle = "MyApp";
contentText = "Reopen App";
notification.defaults |= Notification.DEFAULT_SOUND;
notification.defaults |= Notification.DEFAULT_VIBRATE;
notificationIntent = new Intent(this, StartTimer.class);
contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
Решение
Разобравшись с этим, установите для действия значение SingleTop или SingleInstance в манифесте Android, а затем вместо создания нового действия просто снова откройте то, что все еще активно.
Другие советы
Обратите внимание, что ответ, помеченный как правильный, не является полностью правильным, поскольку «singleTop» по-прежнему может создавать несколько экземпляров вашей активности при определенных условиях.
Режимы запуска, которые действительно гарантируют создание УНИКАЛЬНОГО экземпляра вашей деятельности в любых условиях: "одиночная задача" и "одиночный экземпляр".
Эти два параметра создают одну и единственную задачу для вашей деятельности, являющуюся корнем задачи, с той разницей, что «singleInstance» не разрешает другие действия поверх вашей, а «singleTask» — разрешает.
Источник:http://developer.android.com/guide/topics/manifest/activity-element.html#lmode