android启动外部浏览器,然后使用“后退”按钮返回到应用程序

时间:2020-06-03 12:17:38

标签: android android-activity fragment

我的Android应用中有一个Activity,其中有多个动态生成的Fragments。用户可以点击一个按钮,该按钮将在外部浏览器(例如Google chrome)中打开网站。然后,当用户单击“后退”按钮时,我希望他返回他在我的应用中的位置,但是当前行为是系统关闭google chrome并导航至主屏幕!

我很困惑我是否必须将所有内容都保存在onSaveInstanceState(Bundle)中,还是应该在启动浏览器活动时考虑使用标志?还是什么?!

p.s。我的应用中有2个Activities。启动器是一个简单的启动活动,其中noHistory设置为true,另一个Activity包含所有内容,包括所有片段

1 个答案:

答案 0 :(得分:0)

我建议您研究ChromeCustomTabs(现在在androidX中称为Browser)。 只需添加此依赖项:implementation "androidx.browser:browser:1.2.0"

您只需使用以下命令即可打开URL:
CustomTabsIntent.Builder().build().launchUrl(/* context */, /* url as Uri */)
这支持后按:)

如果您在项目中未使用androidX,则可以改用“旧版本” ChromeCustomTabs。尽管我建议迁移到androidX(as explained in this article

,但它的工作方式相似。