onSaveInstanceState和onRestoreInstanceState是Activity的两个生命周期方法,用于保存和恢复Activity的状态。

onSaveInstanceState方法在Activity被销毁之前被调用,用于保存Activity的状态数据。这个方法通常在以下情况下被调用:

  • 当用户按下后退按钮时,Activity被销毁之前会调用该方法,以便在后续重新创建时恢复状态。
  • 当系统因为内存不足而销毁Activity时,也会调用该方法。

例如,我们有一个计数器应用程序,当用户按下计数按钮时,计数器的值会递增。我们可以在onSaveInstanceState方法中保存计数器的当前值,以便在Activity重新创建时恢复该值。

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putInt("counter", counter); // 保存计数器的值
}

onRestoreInstanceState方法在Activity重新创建时被调用,用于恢复Activity的状态数据。这个方法通常在以下情况下被调用:

  • 当用户按下后退按钮后重新返回到Activity时,会调用该方法,以便恢复之前保存的状态数据。
  • 当系统因为内存不足而销毁并重新创建Activity时,也会调用该方法。

例如,当Activity重新创建时,我们可以在onRestoreInstanceState方法中恢复计数器的值。

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    counter = savedInstanceState.getInt("counter"); // 恢复计数器的值
    updateCounterText(); // 更新计数器显示
}

如果onRestoreInstanceState方法没有执行,可能是因为Activity没有被销毁并重新创建,或者没有保存任何状态数据

onRestoreInstanceState没执行举例说明onSaveInstanceState和onRestoreInstanceState的用法

原文地址: http://www.cveoy.top/t/topic/ivt4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录