1

我正在为Android ICS. 我有一个名册(联系人)活动,可以导致聊天活动(在单击名册(联系人)列表中的条目后)。然后,人们可以聊天,并且可以在单击聊天屏幕上的按钮后返回花名册屏幕。

用于在代码中启动活动以创建意图的标志是:Intent.FLAG_ACTIVITY_REORDER_TO_FRONT

名册活动屏幕上还有一个搜索按钮,可将我们带到搜索活动,这反过来又允许我们进行聊天活动。

这里使用的标志是相同的。这三个都是单任务。

现在的问题是,当我从花名册活动转到聊天活动,然后再回到花名册活动时,一切都很好。但是,当我从花名册活动转到搜索活动,然后到聊天活动,然后返回花名册活动时,花名册活动被重新创建,即oncreate()调用花名册的功能。这不会发生在其他流程中。

谁能解释一下。为搜索创建新活动可能不受欢迎,但假设它很好,为什么会发生这种情况?

ondestroy()不会调用名册活动(因为它不是强制性的)。

4

1 回答 1

2

您必须始终期望 onCreate 在恢复或以其他方式从不同屏幕返回到您的活动后的任何时间点被调用。Android 可以选择终止任何暂停的活动,即对用户隐藏。当返回该 Activity 时,如果它已被销毁,Android 将通过调用 onCreate(和 onRestoreInstanceState,这就是为什么您应该保存应该比 onRetainInstanceState 中的上下文更改更有效的易失性数据来重新创建它。)

这种行为并没有什么荒谬之处,它作为 Android活动生命周期的一部分已被详细记录。

于 2012-09-27T11:49:31.637 回答