2012-02-14 2 views
0

У меня есть сценарий, в котором у моего приложения есть ряд действий, а затем открывается действие браузера. Затем действие браузера аутентифицирует пользователя и обращается к URL-адресу с пользовательской схемой, то есть myapp: // завершено.Показать предыдущую активность после запуска активности браузера?

Фильтр намерений используется для запуска отображения на одном из существующих видов деятельности. В основном я хочу, чтобы приложение возвращалось к активности, которая была показана до начала действия браузера.

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

Task (created by my app) 

1) Activty 1 

2) Activty 2 

Task (created by the browser) 

3) Browser Activity 

4) Activity 2 (new instance) 

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

ответ

0

Я предполагаю, что, завершив действие сразу после того, как вы вызвали webview, вы увидите последнее действие в стеке.

0

Вы используете Webview или запускаете сторонний браузер? В последнем случае рассмотрим использование Webview

+0

Я использую SocalLib и создает активность веб-браузера. Поэтому у меня нет контроллера над тем, как он это делает. Похоже, мне, возможно, придется написать часть логики auth. – Camsoft

Смежные вопросы