gpt4 book ai didi

android - 我怎样才能在 Android 中做到这一点。 Activity -> WebBrowser -> Activity,但按返回键看不到 WebBrowser

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:48:43 27 4
gpt4 key购买 nike

我怎样才能让 Web 浏览器调用自定义方案来启动 Activity,然后我想按下后退按钮但不返回 Web 浏览器。

我只想在调用网络浏览器然后调用我的方案启动另一个 Activity 时实现转发。当我回来时,我不会喜欢看到网络浏览器。

我应该怎么做?

Intent i = new Intent(Intent.ACTION_VIEW);
i.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
i.setData(Uri.parse(url));
startActivity(i);

我已经添加了它,但是它不起作用!

最佳答案

正如其他用户所解释的,您的 Activity 是在浏览器的堆栈上创建的。您无法阻止浏览器在其自己的堆栈上打开,但您可以在您的应用程序上进行相同的配置。

在浏览器调用的 Activity 中,在 list 文件中添加以下内容:

android:allowTaskReparenting="true"
android:launchMode="singleTask"

这将使您的 Activity 在您的应用程序堆栈(而不是浏览器堆栈)上创建。这基本上会将您的应用程序带回前台。

android:launchMode="singleTop"将不起作用,因为只有当该 Activity 位于堆栈顶部时,它才会阻止创建新 Activity ,而情况并非如此,因为浏览器当前位于顶部。 android:launchMode="singleTask"将确保不会创建其他实例,无论它们是否在顶部。

如果您使用上面的配置设置 Intent.FLAG_ACTIVITY_NO_HISTORY 那么一切都应该正常工作,无论浏览器之前是否打开。在最坏的情况下,浏览器将位于堆栈底部,如果您不断回击,您最终会到达浏览器而不是退出应用程序。

关于android - 我怎样才能在 Android 中做到这一点。 Activity -> WebBrowser -> Activity,但按返回键看不到 WebBrowser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5326538/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com