首页 > 其他 > 详细

有关 onSaveInstanceState() 那点事

时间:2016-09-27 14:51:35      阅读:186      评论:0      收藏:0      [点我收藏+]

有关 onSaveInstanceState() 那点事

我们都知道,按 home 键将 APP 压入后台时,会调用 onSaveInstanceState() 方法来保存当前状态,并可以在重新回到 APP 时恢复。最近做了一些保存和恢复 Activity/Fragment 状态的事,总结了一点经验教训。

Activity 与 Fragment 的 savedInstanceState 不能混用。即,在 Fragment 的 onSaveInstanceState() 方法中保存的 bundle,与在 Activity 的 OnCreate() 方法中得到的 bundle 没有关系,两者是独立的。但子类中可以通过重写onSaveInstanceState() 来补充父类中保存的 bundle,Activity、Fragment 皆然。

一些 View 的状态会自动保存和恢复,无需手动保存/恢复。比如 EditText 中输入的文字,按钮的选中状态等。需要注意的是:

  • 只有提供了 android:id 属性的 View 才会自动保存恢复;

  • View 的 visibility 等属性似乎并不会被自动恢复;

需要保存的是成员变量。Activity/Fragment 中每个成员变量都会被销毁,因此我们在 onSaveInstanceState() 中需要保存的是这些成员变量。

参考

https://inthecheesefactory.com/blog/fragment-state-saving-best-practices/en

有关 onSaveInstanceState() 那点事

原文:http://www.cnblogs.com/noodleutopia/p/5912588.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!