onRestoreInstanceState没执行举例说明onSaveInstanceState和onRestoreInstanceState的用法
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没有被销毁并重新创建,或者没有保存任何状态数据
原文地址: http://www.cveoy.top/t/topic/ivt4 著作权归作者所有。请勿转载和采集!