0

关于活动生命周期有很多问题,但我找不到合适的。

我有一个活动(名为 A),它显示来自一位用户的汽车。在内部,活动存储userId到一个变量中以在列表中加载用户的汽车。userId来自之前的活动。

当用户按下 A 上的“新车”按钮时,将启动活动 B。用户填写汽车的表格并按保存。用户的新车被持久化到数据库中。

此时,必须调用哪个方法才能从 B 返回到活动 A?

  1. 我应该打电话finish()吗?然后,用户返回 A,B 被销毁。但是,如果 A 之前被销毁会发生什么?如果 AuserId不存在,如何恢复?
  2. 也许额外startActivity(A)userId意图是打电话?但是,我正在创建一个新活动!
  3. 其他选择?

我相信有人会帮助澄清这些概念。:)

编辑:

有关更多信息,请参阅已接受答案的评论。

4

1 回答 1

2

应该调用完成返回。

1) 如果 A 被销毁,它将由 android 重新创建,除非您在其上调用了 finish()。如果您正确保存了其状态,则根本不应该有问题。

2)这只会将活动 A 移回堆栈顶部或创建一个新活动,具体取决于您添加到意图的标志。

3)我会在活动A中使用startActivityForResult来启动B,然后让用户输入值,将结果设置在B中并调用finish()。

于 2012-07-06T07:32:36.127 回答