Android: несколько одиночных задач в одном приложении: проблема с <HOME> - PullRequest
0 голосов
/ 01 июля 2010

У меня есть 2 действия, объявленные как singleTask в моем приложении.Причина этого заключается в том, что в стандартном режиме нажатие кнопки «HOME» в одном действии (скажем, A) и запуск другого (скажем, B) по-прежнему показывает действие A.

Однако из-за этого возникает новая проблема.

A -> «HOME» -> B (результат: B, ожидаемый результат: B) -> «BACK» -> (результат: A, ожидаемый результат: главный экран)

Anyидеи почему?

1 Ответ

0 голосов
/ 10 июля 2010

Одна вещь, которая не имеет смысла:

нажатие «HOME» в одном действии (скажем, A) и запуск другого (скажем, B), все еще показывает действие A.

Однако из-за этого возникает новая проблема.

A -> "HOME" -> B (результат: B, ожидаемый результат: B)

При нажатии на клавишу Aи запуск B все еще показывает, что A является вашей целью с двумя однозадачными задачами, тогда как A -> HOME -> B может дать ожидаемый для вас результат B?


Теперь я постараюсь помочь:Действие, A или B, обрабатывает намерение Launcher?

A -> HOME -> B (Результат: B) заставит меня догадаться, что B - это то, что делает Activity, и если это так, то ваше существов точке A перед нажатием HOME это будет означать, что ваш стек будет чем-то вроде A выше B (отображается A), поэтому нажатие Home и запуск B приведут ваш стек B выше A (отображается B).

Тогда, если A иB находятся в стеке, нажатие BACK переместит вас с B на A (теперь отображается A).Это звучит как ваша проблема.

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

Если вы опубликуете больше информации, я обновлю свой ответ, чтобы помочь вам разобраться в этом.

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