Вопрос

Когда мое уведомление отключается, я хочу восстановить действие, которое было переведено в фоновый режим, а не начинать новое действие.Я видел несколько ответов об использовании 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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top