Android Activity 状态保存与恢复:onSaveInstanceState 和 onRestoreInstanceState 详解
onSaveInstanceState 和 onRestoreInstanceState 是 Activity 的两个生命周期方法,用于保存和恢复 Activity 的状态。\n\nonSaveInstanceState 方法在 Activity 被销毁之前被调用,用于保存 Activity 的状态数据。这个方法通常在以下情况下被调用:\n- 当用户按下后退按钮时,Activity 被销毁之前会调用该方法,以便在后续重新创建时恢复状态。\n- 当系统因为内存不足而销毁 Activity 时,也会调用该方法。\n\n例如,我们有一个计数器应用程序,当用户按下计数按钮时,计数器的值会递增。我们可以在 onSaveInstanceState 方法中保存计数器的当前值,以便在 Activity 重新创建时恢复该值。\n\njava\n@Override\nprotected void onSaveInstanceState(Bundle outState) {\n super.onSaveInstanceState(outState);\n outState.putInt("counter", counter); // 保存计数器的值\n}\n\n\nonRestoreInstanceState 方法在 Activity 重新创建时被调用,用于恢复 Activity 的状态数据。这个方法通常在以下情况下被调用:\n- 当用户按下后退按钮后重新返回到 Activity 时,会调用该方法,以便恢复之前保存的状态数据。\n- 当系统因为内存不足而销毁并重新创建 Activity 时,也会调用该方法。\n\n例如,当 Activity 重新创建时,我们可以在 onRestoreInstanceState 方法中恢复计数器的值。\n\njava\n@Override\nprotected void onRestoreInstanceState(Bundle savedInstanceState) {\n super.onRestoreInstanceState(savedInstanceState);\n counter = savedInstanceState.getInt("counter"); // 恢复计数器的值\n updateCounterText(); // 更新计数器显示\n}\n\n\n如果 onRestoreInstanceState 方法没有执行,可能是因为 Activity 没有被销毁并重新创建,或者没有保存任何状态数据。'}
原文地址: https://www.cveoy.top/t/topic/qc0s 著作权归作者所有。请勿转载和采集!