具体目的
代码解析
重写onSaveInstanceState方法onSaveInstanceState是 Activity/Fragment 生命周期中的一个回调方法,由系统在组件即将被销毁(且可能重建)时自动调用。这里用override重写该方法,以自定义保存逻辑。
调用父类方法super.onSaveInstanceState(outState)必须调用,目的是让父类(如Activity)保存其自身的默认状态(如视图树的状态),避免父类状态丢失。
存储数据到BundleoutState.putString("inputText", inputText)表示将变量inputText(假设是用户输入的文本)以键值对形式存入Bundle对象outState中(键为"inputText",值为inputText的内容)。Bundle类似一个键值对容器,支持存储基本数据类型(如int、String)、序列化对象等。
用法场景
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// 检查是否有保存的状态数据
if (savedInstanceState != null) {
// 从Bundle中取出之前保存的inputText
inputText = savedInstanceState.getString("inputText", "")
// 恢复UI(如将文本设置到输入框)
editText.setText(inputText)
}
}注意事项
仅用于保存临时状态(如用户输入、滚动位置),不适合存储大量数据(Bundle有大小限制)。
当用户主动销毁组件(如按返回键)时,系统不会调用该方法。
存储的数据需可序列化(基本类型、String、Parcelable等),否则会抛出异常。
版权声明
本文章如果涉及侵权,请联系我。
部分文章系本人原创未经许可,不得转载。



蒙公网安备 15090202000037号
评论列表
发表评论