onRestoreInstanceState()在预期时不被调用

nic*_*ild 12 android

我有遇到一些麻烦最近onSaveInstanceState()onRestoreInstanceState().我有多个活动使用这些方法来保存状态,以防系统清理它们.他们中的大多数都工作,除了一个,我不知道为什么.

具体发生的是:

  • 我让我的模拟器运行,并且dev工具设置为destroy()不再可见时的所有活动.(这样我就可以证明保存/恢复正常工作.)
  • 有问题的活动已启动,我将继续更改其某些状态.
  • 我启动一个新的Activity,让它运行一会儿,然后使用'back'按钮转到我之前的Activity.
  • 在返回相关活动时,我注意到默认状态是回来的,因此,它没有它应该的状态.

我注意到onSaveInstanceState()被调用,onCreate()被调用,但是有一个空包,onRestoreInstanceState()永远不会被调用.

谁看过这个吗?

nic*_*ild 4

我相信我已经解决了这个问题,并且是我在原始问题中没有透露的细节。

我在包中保存的内容之一非常大(500x1000 像素位图)。当我从 Bundle 中删除它时,其他所有内容都被保存,使用 Bundle 调用了 onCreate() 方法,并且还调用了 onRestoreInstanceState() 。

因此,我相信您可以在 onSaveInstanceState() 中保存最大大小的 Bundle,但没有记录。(至少据我所知)