Когда мое приложение отправляется в фоновый режим из действия D, которое называется SingleInstance, перезапустите его из Long Press Home - PullRequest
1 голос
/ 15 февраля 2012

Вот моя проблема.

Моя активность A как обычная активность, теперь активность A, вызов активности B с обычным намерением, теперь активность B, вызов активности C. Теперь у меня есть одна активность D, которую я объявляю как SingleInstance

  android:launchMode="singleInstance"

Теперь, когда я запускаю свою активность D из действия C по намерению, теперь давайте рассмотрим один случай, когда пользователь находится в моей активности D, теперь пользователь нажимает клавишу «Домой», и теперь он достигает на главном экране моего мобильного Android. Теперь долгое нажатие пользователя в главном ключе и есть список последних приложений, в которых пользователь нажимает мое приложение, и мое приложение показывает активность D, которая является текущей, но реальная проблема начинается, когда пользователь нажимает клавишу возврата, она отправляет на главный экран, который, как я ожидал, должен показывать мне активность C, вызывающий активность D.

Может ли кто-нибудь помочь в проблеме для ланча приложения из недавнего списка приложений.

Ответы [ 3 ]

0 голосов
/ 15 февраля 2012

ты читал это http://developer.android.com/guide/topics/manifest/activity-element.html#lmode ???

  • singleTask
    Система создает действие в корне новой задачи и направляет намерение к ней. Однако, если экземпляр действия уже существует, система направляет намерение к существующему экземпляру посредством вызова его метода onNewIntent () вместо создания нового.
  • SingleInstance
    То же, что и «singleTask», за исключением того, что система не запускает никаких других действий в задаче, содержащей экземпляр. Деятельность всегда является единственным и единственным участником своей задачи.
0 голосов
/ 16 февраля 2012

Теперь, чтобы выйти из этой проблемы, я делаю следующее.

Поскольку я сказал, что Задание D - это единичный экземпляр, объявите в Android-манифесте, Теперь задание D имеет

onNewIntent(Intent intent)  @Override

Теперь я добавляюСледующий код в этом методе.

if ((intent.getFlags() & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) != 0) {
        Intent intent=new Intent(Activity D.this, Activity C.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
        startActivity(intentStart);
        return;
    }
0 голосов
/ 15 февраля 2012

То же, что и "singleTask", за исключением того, что система не запускает никаких других действий для задачи, содержащей экземпляр.Действие всегда является единственным и единственным членом его задачи

Из документации

, поэтому необходимо удалить android:launchMode="singleInstance" из файла манифеста или изменить переопределение Кнопка "Назад"функционал в вашей деятельности D.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...