`
wangleyiang
  • 浏览: 221880 次
社区版块
存档分类
最新评论

Android 中使用onSaveInstanceState和onRestoreInstanceState保存恢复临时信息

阅读更多

在Activity中,有两个方法用于临时保存、恢复状态信息,这两个方法是:

  • public void onSaveInstanceState(Bundle savedInstanceState);
  • public void onRestoreInstanceState(Bundle savedInstanceState);

关于这两个方法的描述不是本文要说明的内容,请参考开发者网站!:)

 

以下几种情况会调用onSaveInstanceState,分别是:

  • 用户按下HOME键;
  • 长按HOME键,选择运行其他的程序;
  • 按下电源按键;
  • 屏幕方向切换(可能);
  • 启动新的Activity等;

适合临时信息:当要保存持久信息时,不要使用这个保存方法!举个简单的例子,当我们点击Home后,onSaveInstanceState方法会被调用,此时,如果从Settings里面终止程序,那么,回来后发现保存的数据是不存在的。

 

 

 

 

分享到:
评论

相关推荐

    Android onSaveInstanceState和onRestoreInstanceState触发的时机

    在Android应用开发中,`onSaveInstanceState()` 和 `onRestoreInstanceState()` 是两个关键的方法,用于在Activity的状态发生变化时保存和恢复用户界面的状态。这些方法在特定的生命周期事件中被调用,确保当...

    onSaveInstanceState保存数据demo

    在`onSaveInstanceState()`中,你需要将需要保存的状态信息添加到这个Bundle中,以便稍后在`onCreate()`或`onRestoreInstanceState(Bundle savedInstanceState)`中恢复。 **3. 保存数据示例** ```java @Override ...

    onSaveInstanceState调用的小例子

    在`MyOnSaveInstanceState`这个示例项目中,可能包含了完整的代码实现,展示了如何在实际应用中使用`onSaveInstanceState`。通过查看和运行这个例子,开发者可以更直观地理解这个方法的工作原理,以及如何有效地保存...

    测试Activity状态保存和恢复

    通过合理使用`onSaveInstanceState()`、`onCreate(Bundle savedInstanceState)`和`onRestoreInstanceState(Bundle savedInstanceState)`,以及充分的测试,开发者可以确保Activity在任何情况下都能正确地保存和恢复...

    android 五子棋游戏

    此外,为了防止用户意外退出导致游戏丢失,可以利用Android的onSaveInstanceState和onRestoreInstanceState方法保存和恢复临时的游戏状态。 退出功能是通过结束当前Activity或者调用System.exit()方法实现,但后者...

    仿天猫 购物车(Android studio 仿天猫 详情页面 添加购物车选择 颜色 尺寸demo

    总之,这个项目涵盖了Android开发中的多个核心概念和技术,包括UI设计、数据管理、事件处理、状态保存和恢复,以及测试和发布流程。通过实践这个项目,开发者可以加深对Android应用开发的理解,提升实际操作能力。

    Android应用源码之SpareParts.zip

    SpareParts采用了轻量级的状态保存策略,不同于Bundle用于Activity的onSaveInstanceState()和onRestoreInstanceState()方法。它主要适用于那些不希望或者不适合通过标准保存/恢复机制处理的轻量级状态数据。例如,...

    037集-Activity纵横屏切换的数据保存与恢复

    总之,“037集-Activity纵横屏切换的数据保存与恢复”教程详细讲解了如何在Android中处理屏幕旋转带来的Activity生命周期变化,确保数据安全且用户体验流畅。通过理解并正确应用这些概念和技术,开发者可以创建更加...

    activity生命周期保存数据

    总之,`onSaveInstanceState()`是Android中用于保存Activity临时状态的重要工具,合理使用它可以提高用户体验,避免用户在意外情况下丢失数据。但同时,开发者也需要理解其局限性,并结合其他持久化存储手段来确保...

    Android中的生命周期LifeCycle

    例如,在onSaveInstanceState()中保存临时状态,在onRestoreInstanceState()中恢复。 为了更好地理解和调试Activity生命周期,开发者可以利用Android Studio提供的工具,如Android Profiler和Lifecycle-aware ...

    Android开发--教你巧妙应对屏幕旋转

    可以手动旋转设备或在Android Studio的模拟器中使用旋转按钮进行测试。同时,编写自动化测试用例,如JUnit或Espresso,可以帮助检测旋转时的错误和异常行为。 7. **性能优化**:避免在旋转时大量重新计算和加载资源...

    Android开发艺术探索.pdf

    为了应对这种异常情况,系统提供了onSaveInstanceState方法来保存Activity状态,并在Activity重建时通过onRestoreInstanceState恢复数据。开发者可以通过覆写这两个方法来处理用户的临时数据保存和恢复。 Activity...

    Android学习小结之Activity保存和恢复状态

    总之,理解并正确实施Activity的保存和恢复状态是Android开发中的重要技能,它能确保用户体验的连贯性,并减少不必要的数据丢失。通过掌握这些知识,开发者可以创建更加健壮和用户友好的应用程序。

    全面解析Android应用开发中Activity类的用法

    - 使用`Context.startActivity(Intent)`方法启动新Activity,Intent中包含要启动的目标Activity信息和可能的数据。 5. **Activity栈管理**: Android使用任务(Task)和回退栈(Back Stack)管理Activity。新启动的...

    android-simpl3r-文件上传master.zip

    Android的`onSaveInstanceState()`和`onRestoreInstanceState()`方法,或使用`ViewModel`和`SavedStateHandle`可以实现状态的持久化。 通过分析和学习Simpl3r项目的源代码,开发者不仅可以掌握文件上传的具体实现,...

    Android实现一款优雅简洁的日记App

    同时,为了保持用户在输入时的体验,可以使用Android的`onSaveInstanceState()`和`onRestoreInstanceState()`方法,或者使用ViewModel类来保存临时状态,以便在应用重新打开时恢复。 7. **权限管理**: 如果日记App...

    Android视频-6

    5. **配置变更**: Android系统可能会因为屏幕旋转、语言切换等配置变化而重新创建Activity,这时可以通过重写`onSaveInstanceState()`和`onRestoreInstanceState()`保存和恢复状态。 6. **后台与恢复**: 如果...

    android 面试题(个人总结)

    三、Activity的保存与恢复状态:`onSaveInstanceState()`和`onRestoreInstanceState()` 系统在`onPause()`之前可能会调用`onSaveInstanceState(Bundle outState)`,让开发者有机会保存Activity的状态。保存的数据会...

    Android部分Activity篇.zip

    利用onSaveInstanceState(Bundle outState)和onRestoreInstanceState(Bundle savedInstanceState)可以保存和恢复临时状态,而使用savedInstanceState Bundle可以保存和恢复持久性数据。 总之,Activity是Android...

    android生命周期研究

    - 懂得何时保存和恢复状态:在onSaveInstanceState()中保存临时数据,在onCreate()或onRestoreInstanceState()恢复。 - 耗时操作处理:不在onCreate()、onStart()或onResume()中执行耗时操作,以避免阻塞UI线程。 ...

Global site tag (gtag.js) - Google Analytics