0

我在从浏览器直接获得重新创建活动实例时遇到问题。
问题是:-
Activity A 调用浏览器用标志 - 做一些事情 FLAG_ACITIVTY_NEW_TASK。浏览器使用 Activity A 的指定 URL 方案重定向回 Activity A。重定向后,Activity A 检查意图中的令牌和其他参数。活动 A 将其意图重置为默认值setIntent()
问题:-
设置意图后,如果我调用相同的活动getIntent(),它会给出浏览器调用活动 A 的意图。在按下后,我再次看到具有我之前设置的意图的活动 A 实例。
即堆栈看起来像 A-Browser Activity -A'

我认为 A 是创建的活动 A 的新实例,但实际更改会反映在活动 A 中。当我显示警报对话框时会出现同样的问题。当从后台堆栈中清除 A' 时,我看到活动 A 中的警报对话框,我在从浏览器获得重定向后显示该对话框。

首先,我不希望创建一个新实例(A')。

我通过将 Activity A 的 launchMode 设置为 signleTop 但行为相同来检查场景。

感谢您的意见。

4

1 回答 1

0

很抱歉发布这么晚,这是解决方案:

您是否将活动的启动模式设置为:singleTask 通过这个框架将避免为同一个活动重新创建一个新实例(如果已经存在),这样做您的活动实例将被调出并接收 onNewIntent() 回调而不是 onResume() 。在 onNewIntent() 中有你的逻辑

希望这可以帮助 !谢谢 。

于 2013-09-18T04:37:48.380 回答