2015-04-27 4 views
0

В начале действия моего приложения я показываю диалог пользователю и спрашиваю, хочет ли он видеть какое-то содержимое на моем веб-сайте или нет.ANDROID: открыть URL-адрес во внешнем браузере, продолжая приложение

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

Проблема в положительном состоянии. Это мой код в положительном состоянии:

Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.aaa.ir")); 
startActivity(browserIntent); 
continueActivity(); 

Из-за вызова continueActivity(), внешний браузер не может открыть, и если я не называю continueActivity(), то URL открывается в браузере и внешнем приложении в текущей активности.

Итак, как я могу открыть URL-адрес и в то же время продолжить процесс и перейти к другим видам деятельности.

+0

Вы можете использовать startActivityForResult. – keshav

+0

Я согласен с @keshav. – WoookLiu

+0

попробуйте вызвать continueActivity() перед намерением браузера – Prakhar

ответ

1

Я обычно использую

startActivityForResult(browserIntent, BROWSER_REQUEST); 

и переопределить onActivityResult (INT reqCode, Int resultStat, Намерение намерения)

if(reqCode == BROWSER_REQUEST) { 
    continueActivity(); 
} 
0

Как только вы вызываете startActivity, текущая активность будет действовать через выход из жизненного цикла Activity. Это неизбежно.

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

0

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

intent.putBoolean("openExternalLink", dialogResultHere); 

Тогда в continueActivity вы получили это намерение, как

getIntent().getBoolean("openExternalLink") 

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

getIntent(). removeBoolean ("openExternalLink");

P.S. подписи методов могут быть немного разными, но общая идея здесь

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