[英]onRestoreInstanceState() not being called when it is expected
我最近遇到了onSaveInstanceState()
和onRestoreInstanceState()
。 我有多个活动使用这些方法来保存状态,以防系统清理它们。 他们中的大多数都工作,除了一个,我不知道为什么。
具体发生的是:
destroy()
所有活动,当它们不再可见时。 (这样我就可以证明保存/恢复正常工作。) 我注意到onSaveInstanceState()
被调用, onCreate()
被调用,但是有一个空包,并且永远不会调用onRestoreInstanceState()
。
谁看过这个吗?
我相信我已经找到了这个问题,而且我在原始问题中没有透露具体细节。
我在捆绑中保存的一件事非常大(500x1000像素的Bitmap)。 当我从Bundle中删除它时,保存了其他所有内容,使用Bundle调用了onCreate()方法,并且还调用了onRestoreInstanceState()。
因此,我相信有一个最大大小的Bundle可以保存在onSaveInstanceState()中,没有记录。 (至少据我所知)
您正在使用的开发工具设置可能没有您期望的行为。
如果要测试onSaveInstanceState()
/ onRestoreInstanceState()
,最简单的方法是更改方向( <Ctrl>-<F11>
)。 默认情况下,使用实例状态销毁并重新创建活动。
在另一个问题的线程中给出了为什么没有调用onRestoreInstanceState()
(或者更多peciselly:调用它)的原因: onSaveInstanceState()和onRestoreInstanceState()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.