美文网首页
每日一问(十一)onSaveInstanceState调用时机

每日一问(十一)onSaveInstanceState调用时机

作者: 我在吉安打螺丝 | 来源:发表于2021-08-03 16:16 被阅读0次

    Activity的状态通常情况下系统会自动保存的,只有当我们需要保存额外的数据时才需
    要使用到这样的功能。
    通常情况:
    调用onPause()和onStop()方法后的activity实例仍然存在于内存中, activity的所有信息
    和状态数据不会消失, 当activity重新回到前台之后, 所有的改变都会得到保留。
    异常情况:
    但是当系统内存不足时, 调用onPause()和onStop()方法后的activity可能会被系统摧毁,
    此时内存中就不会存有该activity的实例对象了。如果之后这个activity重新回到前台, 之
    前所作的改变就会消失。
    为了避免数据消失:
    我们可以覆写onSaveInstanceState()方法。onSaveInstanceState()方法接受一个Bundle类
    型的参数, 开发者可以将状态数据存储到这个Bundle对象中, 这样即使activity被系统
    摧毁, 当用户重新启动这个activity而调用它的onCreate()方法时, 上述的Bundle对象会
    作为实参传递给onCreate()方法, 开发者可以从Bundle对象中取出保存的数据, 然后利
    用这些数据将activity恢复到被摧毁之前的状态。
    需要注意的是:
    onSaveInstanceState()方法并不是一定会被调用的, 因为有些场景是不需要保存状态数据
    的. 比如用户按下BACK键退出activity时, 用户显然想要关闭这个activity, 此时是没有
    必要保存数据以供下次恢复的, 也就是onSaveInstanceState()方法不会被调用. 如果调用
    onSaveInstanceState()方法, 调用将发生在onPause()或onStop()方法之前。
    android onSaveInstanceState调用时机详细总结
    Android onSaveInstanceState和onRestoreInstanceState调用时机

    相关文章

      网友评论

          本文标题:每日一问(十一)onSaveInstanceState调用时机

          本文链接:https://www.haomeiwen.com/subject/alsevltx.html