0

我的应用程序中有两个活动,一个“主要”活动和一个“提示”活动。Prompt 是从 Main Activity 中 ActionBar 上的按钮调用的,Prompt 有几个 EditText 对象和一个 Spinner。Prompt 还有一个 Button,当按下它时,应该验证这些对象中的值,然后将它们发送回 Main Activity。

我知道您可以将此信息作为 Bundle 发送,方法是将其放在 Intent 中并调用 StartActivity。但是,如果我了解 Activity 生命周期,则执行 startActivity() 调用来启动 Main Activity 会将旧版本的 Main 保留在后台并占用不需要的资源,并使用户可以“清除”回来提示,然后到旧的主要活动。

我希望将旧的 Main 活动和 Prompt 活动都从后台堆栈中删除,同时还将 Prompt 字段中的值发送到新的 Main 活动。谁能帮我找出实现这一目标的最理想方法?

谢谢!

4

1 回答 1

1

最好的方法是先将PromptstartActivityForResult()返回到onActivityResult()

带有示例的文档

如果由于某种原因这对您不起作用,那么您可能Intent flag会根据您的情况找到一个可以完成您需要的东西。可能对您有用的是FLAG_ACTIVITY_REORDER_TO_FRONT这会将您MainActivity带到堆栈的顶部

另外,只要finish()PromptActivity在调用后调用startActivity它,它就会从堆栈中清除

您应该观看Google I/O Navigation。它解释了导航以及堆栈如何很好地工作

于 2013-05-17T19:37:31.733 回答