我有一个场景,我的应用程序有一系列活动,然后打开浏览器活动。然后,浏览器活动对用户进行身份验证,并使用自定义方案回调到URL,即myapp:// finished。
意图过滤器用于触发其中一个现有活动的显示。我基本上希望应用程序返回到启动浏览器活动之前显示的活动。
我遇到的问题是浏览器活动会创建一个新任务,因此当浏览器回调并加载我的活动时,会在浏览器任务中创建一个新实例而不是我的应用程序的orignal任务。这导致我的活动被重新创建。
Task (created by my app) 1) Activty 1 2) Activty 2 Task (created by the browser) 3) Browser Activity 4) Activity 2 (new instance)
我知道有些标志可用于恢复现有活动而不是重新创建它们,但它们不能像浏览器限制在浏览器任务堆栈后创建的任何新意图一样工作。
答案 0 :(得分:0)
我想通过在webview调用之后完成活动会弹出堆栈上的最后一个活动。
答案 1 :(得分:0)
您使用的是Webview
还是启动了第三方浏览器?在最后一种情况下,请考虑使用Webview