在我的应用程序的启动活动中,我向用户显示一个对话框,询问他是否想在我的网站上看到一些内容。
如果他单击否,对话框将消失,我调用continueActivity()来执行某个过程并从当前活动转到MainActivity。 如果他单击是,我想在外部浏览器中打开网页,然后再次调用continueActivity()来执行某个过程并从当前活动转到MainActivity。
问题是积极的。这是我的正态代码:
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.aaa.ir"));
startActivity(browserIntent);
continueActivity();
由于调用continueActivity(),外部浏览器无法打开,如果我不调用continueActivity(),则会在外部浏览器中打开该URL,并且应用程序会粘在当前活动中。
那么我怎样才能打开网址,同时继续这个过程并进行其他活动。
答案 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。方法的签名可能有点不同,但一般的想法在这里