将Bundle发送到呼叫活动

时间:2013-05-17 19:33:52

标签: android

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

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

我希望从Backstack中删除旧的Main活动以及Prompt活动,同时将值从Prompt的字段发送到新的Main活动。任何人都可以帮我找到最理想的方法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

执行此操作的最佳方法是使用Prompt启动startActivityForResult(),然后将值返回onActivityResult()

Docs示例

如果由于某些原因这对您不起作用,那么您可能会找到一个Intent flag,它将根据您的具体情况完成您的需要。一个可能适合你的是FLAG_ACTIVITY_REORDER_TO_FRONT这会将你的MainActivity带到堆栈顶部

此外,只要您在致电finish()后致电PromptActivity startActivity,就会从堆栈中清除

你应该看Google I/O Navigation。它解释了导航以及堆栈如何运作良好