onRestoreInstanceState()在预期时不被调用

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

具体发生的是这样的:

  • 我有我的模拟器运行,开发工具设置destroy()不再可见的所有活动。 (所以我可以certificate保存/恢复工作正常。)
  • 有问题的活动启动了,我继续改变它的一些状态。
  • 我开始一个新的活动,让它运行一会儿,然后使用“后退”button去我以前的活动。
  • 回到问题的活动,我注意到,默认状态回来,因此,它没有它应该的状态。

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

有没有人见过这个?

Solutions Collecting From Web of "onRestoreInstanceState()在预期时不被调用"

您正在使用的开发工具设置可能没有您所期望的行为。

如果要testingonSaveInstanceState() / onRestoreInstanceState() ,最简单的方法是更改​​方向( <Ctrl>-<F11> )。 默认情况下,使用实例状态销毁和重新创build活动。

我相信我已经弄清了这个问题,这个问题在原来的问题中没有透露。

我保存在我的包中的一件事是相当大的(一个500×1000像素位图)。 当我从Bundle中删除它时,其他一切都被保存了,onCreate()方法被Bundle调用,onRestoreInstanceState()也被调用。

因此,我相信有一个最大大小的Bundle,你可以保存在onSaveInstanceState(),这是没有logging。 (至less据我所知)

onRestoreInstanceState() ()和onRestoreInstanceState()函数给出了onRestoreInstanceState()函数的调用方式,