ANDROID:在继续应用程序的同时在外部浏览器中打开URL

时间:2015-04-27 09:53:00

标签: android

在我的应用程序的启动活动中,我向用户显示一个对话框,询问他是否想在我的网站上看到一些内容。

如果他单击否,对话框将消失,我调用continueActivity()来执行某个过程并从当前活动转到MainActivity。 如果他单击是,我想在外部浏览器中打开网页,然后再次调用continueActivity()来执行某个过程并从当前活动转到MainActivity。

问题是积极的。这是我的正态代码:

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

由于调用continueActivity(),外部浏览器无法打开,如果我不调用continueActivity(),则会在外部浏览器中打开该URL,并且应用程序会粘在当前活动中。

那么我怎样才能打开网址,同时继续这个过程并进行其他活动。

3 个答案:

答案 0 :(得分:1)

我通常使用

startActivityForResult(browserIntent, BROWSER_REQUEST);

并覆盖 onActivityResult(int reqCode,int resultStat,Intent intent)

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

答案 1 :(得分:0)

调用startActivity后,您当前的Activity将跟随Activity生命周期的退出。这是不可避免的。

如果您希望在此期间继续处理,则应考虑使用服务。如果您希望App返回其当前状态,则需要存储相关数据并将Activity加载到其先前状态(或下一个预期状态)。

答案 2 :(得分:0)

以两种方式继续开放。我不了解你的建筑。你可以添加一些额外的意图

intent.putBoolean("openExternalLink", dialogResultHere);

然后在continueActivity中你会得到像

这样的意图
getIntent().getBoolean("openExternalLink")

也不要忘记删除此选项,否则每次Activity重放(屏幕旋转,最小化等)后都会打开浏览器

getIntent()removeBoolean(" openExternalLink&#34);

P.S。方法的签名可能有点不同,但一般的想法在这里