1

在android文档中这样说:

...当活动暂停或停止时,活动的状态将被保留。这是真的,因为 Activity 对象在暂停或停止时仍保留在内存中——有关其成员和当前状态的所有信息仍然存在。因此,用户在活动中所做的任何更改都将保留,以便当活动返回前台时(当它“恢复”时),这些更改仍然存在。

但是在我的活动中,当我从其他活动回来时,可展开列表被重置(所有展开的组都被折叠)。数据不会被修改,适配器和游标不会被通知或重新查询。我已经检查过永远不会调用 onDestroy 回调方法,只有 onPause 和 onStop。

我使用 startActivityForResult 退出活动,然后使用 finish() 回来。

请问,为什么我失去了状态?谢谢。

4

1 回答 1

1

很多时候,当你使用时startActivityForResult,你会失去你的状态。您需要通过覆盖onSaveInstanceState并将数据添加到 Bundle 来保存所有相关数据。onRestoreInstanceState当您回来并需要恢复数据时,也可以覆盖处理。因此,在您的情况下,您可以向 Bundle 添加可扩展列表的哪些部分正在扩展,以便您可以在返回时再次扩展它们。

于 2012-02-20T17:32:18.443 回答