где будет Android закончить () вернуться к - PullRequest
0 голосов
/ 16 ноября 2011

У меня есть действие, которое можно вызвать из родительского действия и из другого приложения через фильтр намерений (например, ACTION_VIEW).

Когда я вызываю финиш () внутри своего действия, как вернуться к нужному абоненту?

то есть: другое приложение -> моя деятельность -> finish () -> другое приложение

в настоящее время, если моя основная деятельность все еще выполняется, finish () вернется к моей основной деятельности,хотя он был вызван из другого приложения.

Ответы [ 4 ]

1 голос
/ 16 ноября 2011

Если вы начнете одно действие с startActivityForResult(Intent), то вы можете получить второе действие, которое запустило первое с getCallingActivity().

1 голос
/ 16 ноября 2011

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

Например:

Main> A> B

Если в Activity B вызывается метод Finish, вы вернетесь кЗанятие A. Если в Занятии A вызывается финиш, но Занятие B все еще живо, вы останетесь в Занятии B, так как это самое верхнее занятие в вашем стеке истории.Если метод Finish вызывается для действия B, но по какой-то причине действие A отсутствует в вашем стеке истории (скорее всего, если вы указали, что действие A не должно сохраняться в стеке истории), вы вернетесь к Activity Main вместо действия B.

0 голосов
/ 16 ноября 2011

Читайте о Задачи - вызывая действие из другой задачи (/ приложения), вы выводите существующую задачу на передний план, которая может включать другие действия в заднем стеке, которые вы надеваетене хочуЯ бы предложил указать android: taskAffinity действия, которое можно запустить из других приложений.Поскольку это гарантирует, что это действие будет единственным в задаче, не имеет значения, запущено ли оно из собственного приложения или другого.

РЕДАКТИРОВАТЬ: на рисунке 4 в ссылке Задачи показан вашситуация.

0 голосов
/ 16 ноября 2011

Используйте startactivityforresult (), когда вы хотите вызвать дочернее действие. Вы вернетесь к хорошему.

...