Как переключиться на действие, которое выполняется через уже запущенное действие - PullRequest
1 голос
/ 02 сентября 2011

Я знаю, что есть много дискуссий по этому поводу, но я не могу заставить это работать должным образом.

Activity (A) = singleTop и может получить android.intent.action.SEND
Activity (B) = singleTask

Когда i из галереи Android выберите изображениеи откройте его с помощью (A)
(A) перенаправляет намерение на (B).

Это работает нормально, и если я нажму ДОМОЙ и выберу (A) из ланчера, то (B)выносится на фронт.Это то, что я хочу, и пользователь может продолжить с картинкой,

Теперь, если я нажму ДОМОЙ и снова открою галерею Android, (A) будет
onRestart(), OnStart() и onResume().и я вижу (A).

Это проблема, которую я хотел бы переключить на (B), потому что пользователю нужно закончить то, что он делал.

Я не вижу хорошего способа сделать этои почему возобновляется галерея Android (A)?
Может быть, я что-то не так делаю, поскольку открытие галереи Android приносит мне (A)
Любая помощь будет признательна

Ответы [ 2 ]

0 голосов
/ 14 сентября 2011

ОБНОВЛЕНИЕ
Я знаю, что это сложный сценарий.Я сделал рабочее решение, просто убив (A) / finish () после запуска (B).Теперь,

, если я нажимаю ДОМОЙ и снова открываю Галерею Android, я вижу галерею Android.
Если я нажимаю ДОМОЙ и открываю А, я вижу B.
Если я нажимаю обратно из BI, см. Галерею

0 голосов
/ 03 сентября 2011

Это возможное рассуждение, основанное на ограниченной информации в вопросе, при условии, что A перенаправляет намерение B в его onCreate ().

1) Откройте Галерею, выберите изображение, откройте с помощью A, перенаправьте его на B

Task1 has stack has Gallery, A, B (B on top of the stack)

2) Нажмите домой, выберите A из программы запуска

Launcher app creates a new task, new task2's stack has a new instance of activity A, its onCreate() is invoked and intent is redirected to B. B being a singleTask is moved from Task1 to Task2 and its onNewIntent() would be invoked.

3) Нажмите Домой и откройте галерею

Task1 is resumed and the top of the stack is now A. Its onRestart(), onStart() and onResume() is invoked.

В этом сценарии вы можете попытаться перенаправить намерение из onStart () A или не указывать B как singleTask.

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