startActivityForResult之后的活动状态

时间:2012-02-20 13:12:11

标签: android expandablelistview activity-finish

在android documentantion中说:

  

...当活动暂停或停止时,活动的状态为   保留。这是正确的,因为Activity对象仍然存在   暂停或停止时的内存 - 有关其成员的所有信息   目前的状态仍然存在。因此,用户所做的任何更改   保留活动内部,以便在活动返回时   前景(当它“恢复”时),那些变化仍在那里。

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

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

拜托,为什么我要失去国家? 感谢。

1 个答案:

答案 0 :(得分:0)

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