@Override
protected void onRestoreInstanceState(Bundle savedState) {
super.onRestoreInstanceState(savedState);
mSeries = (CategorySeries) savedState.getSerializable("current_series");
mRenderer = (DefaultRenderer) savedState.getSerializable("current_renderer");
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putSerializable("current_series", mSeries);
outState.putSerializable("current_renderer", mRenderer);
}
Activity的onSaveInstanceState()和onRestoreInstanceState()并不是生命周期方法,
它们不同于onCreate()、onPause()等生命周期方法,它们并不一定会被触发。
当应用遇到意外情况(如:内存不足、用户直接按Home键)由系统销毁一个Activity时,
onSaveInstanceState()会被调用(由运行状态进入暂停状态或停止状态)。
但是当用户主动去销毁一个Activity时,例如在应用中按返回键,onSaveInstanceState()就不会被调用。
因为在这种情况下,用户的行为决定了不需要保存Activity的状态。
通常onSaveInstanceState()只适合用于保存一些临时性的状态,
而onPause()适合用于数据的持久化保存。
另外,当屏幕的方向发生了改变,Activity会被摧毁并且被重新创建,
如果你想在Activity被摧毁前缓存一些数据,并且在Activity被重新创建后恢复缓存的数据。
分享到:
相关推荐
通过重写一个 Activity 的所有生命周期的 onXXX 方法,包括 onSaveInstanceState 和 onRestoreInstanceState 方法,我们可以清楚地知道当某个 Activity(假定为 Activity A)显示在当前 task 的最上层时,其 ...
No boilerplate code like onSaveInstanceState or onRestoreInstanceState any more. Getting started Just add the @AutoRestore annotation to your fields that need to be saved and restored in Activities, ...
onCreateView用于加载子Activity的布局,onDestroyView则用于清理资源,而onSaveInstanceState和onRestoreInstanceState则用于保存和恢复子Activity的状态。 2. **启动子Activity**:在ActivityGroup中,我们需要...
"View" code and "Screen Code" such as onCreate,onCreateView, onViewCreated or onSaveInstanceState, onRestoreInstanceState.onActivityResult etc. It makes hard to see each "View Logic" and "Screen Logic...
6. 理解和利用生命周期回调函数:Activity生命周期涉及多个回调函数,如onCreate(), onRestoreInstanceState(), 和onSaveInstanceState()。这些方法分别在Activity创建、恢复状态和保存状态时被系统调用。正确地实现...
然后Activity的onSaveInstanceState、onRestoreInstanceState最终也会调用到控件的这两个同名方法。View的初始化时要调用setSaveEnabled(true) 。 另外,想要保存View的状态,需要在XML布局文件中提供一个
onSaveInstanceState()和onRestoreInstanceState()是Activity生命周期中两个非常重要的方法。 onSaveInstanceState()会在以下情况被调用: * 从最近应用中选择运行其他的程序时。 * 当用户按下HOME键时。 * 屏幕...
8. **Activity的配置变更**:例如屏幕旋转会导致Activity重建,开发者可以通过配置文件或重写onSaveInstanceState和onRestoreInstanceState来处理配置变更。 9. **任务切换和多任务处理**:Android系统允许用户在多...
在Android应用开发中,`onSaveInstanceState()`是一个关键的方法,用于在应用的Activity或Fragment生命周期中保存用户界面的状态。这个方法通常在系统即将销毁一个组件(例如:屏幕旋转、后台进程被清理等)时调用,...
5. 存储和恢复状态:由于ActivityGroup内的Activity可能需要保存和恢复其状态,你需要处理onSaveInstanceState和onRestoreInstanceState方法,确保在配置更改(如屏幕旋转)时,Activity的状态能得到正确处理。...
在Android应用开发中,`onSaveInstanceState`是一个关键的方法,用于在应用程序的生命周期中保存活动(Activity)的状态。当系统需要销毁一个活动时,比如屏幕旋转、用户按下Home键或者系统资源紧张,它会调用`...
Activity的状态保存和恢复是通过onSaveInstanceState和onRestoreInstanceState方法实现的。当Activity被销毁或由于系统原因需要暂时隐藏时,可以调用onSaveInstanceState方法来保存关键数据到Bundle对象中,然后在...
你需要重写onCreateView方法来返回子Activity的视图,以及onSaveInstanceState和onRestoreInstanceState来保存和恢复子Activity的状态。 3. 启动子Activity:当Gallery的选中项发生变化时,调用...
开发者可以通过重写`onSaveInstanceState()`和`onRestoreInstanceState()`来保存和恢复Activity的状态。 - 使用`onActivityResult()`来处理一个Activity启动另一个Activity后返回的结果。 - `...
通过合理使用`onSaveInstanceState()`、`onCreate(Bundle savedInstanceState)`和`onRestoreInstanceState(Bundle savedInstanceState)`,以及充分的测试,开发者可以确保Activity在任何情况下都能正确地保存和恢复...
4. **保存和恢复状态**:在onSaveInstanceState()和onRestoreInstanceState()方法中保存和恢复Activity的状态,以确保应用在配置改变时能正确恢复。 总之,理解Activity的生命周期和如何有效地管理它是开发Android...
onSaveInstanceState(Bundle outState)方法在Activity暂停之前调用,可以将当前状态数据保存到Bundle中。当Activity重新创建时,onCreate(Bundle savedInstanceState)或onRestoreInstanceState(Bundle ...
- `onRestoreInstanceState(Bundle)`:当Activity恢复时,系统会调用此方法,以便恢复之前保存的状态。 了解和熟练掌握上述知识点对于Android开发者来说至关重要,因为Activity是构建用户界面和管理应用流程的基础...
例如,可以使用`onSaveInstanceState`和`onRestoreInstanceState`来保存和恢复游戏状态,或者通过配置变更不销毁Activity来避免不必要的重建。 总之,理解设备旋转对Activity生命周期的影响以及如何妥善处理这种...