Как начать действие с одного экземпляра? - PullRequest
0 голосов
/ 27 апреля 2011

У меня есть виджет, который может открывать маленькие диалоги при нажатии.Эти диалоговые окна отображаются действием, называемым RemoteActivity, в launchMode singleInstance.В одном из этих диалогов есть кнопка для запуска основного приложения MainActivity, которое имеет стандартный launchMode.

Однако при нажатии этой кнопки и вызове startActivity () MainActivity не запускается, хотяЯ вижу соответствующее «Начальное действие: намерение {...}» в logcat.

Если я установлю для launchMode of RemoteActivity стандартное значение, запускается MainActivity, но это не то, что мне нужно, RemoteActivityпросто расширение виджета, я не хочу, чтобы он складывался с какой-либо другой активностью.

Я также пытался использовать FLAG_ACTIVITY_NEW_TASK, но это не помогло, и это не должно быть необходимок документам :

С другой стороны, действие "singleInstance" не позволяет никаким другим действиям быть частью его задачи.Это единственное занятие в задании.Если он запускает другое действие, то это действие назначается другой задаче - как если бы у цели был FLAG_ACTIVITY_NEW_TASK.

Как запустить основное действие?

ОБНОВЛЕНИЕ/ ERRATA:

MainActivity фактически запущена, но только если она еще не является частью задачи.Если я обычно запускаю MainActivity через панель запуска и нажимаю Back для выхода, тогда RemoteActivity запускает MainActivity.

Но если вместо нажатия Back я нажимаю Home, чтобы покинуть MainActivity, RemoteActivity не может запустить MainActivity,хотя намерение появляется в logcat.

Я тестирую это на Froyo.

Есть идеи о том, что происходит?

Ответы [ 2 ]

0 голосов
/ 27 апреля 2011

Я обнаружил проблему: это происходит только при вызове finish () перед startActivity () в RemoteActivity.Если я вызываю startActivity () перед finish (), тогда он работает нормально, независимо от того, является ли MainActivity частью существующей задачи.

Перейти ... ... 1003 *

0 голосов
/ 27 апреля 2011

Может быть, флаг noHistory подойдет для того, что вы ищете?

...