`

保存activity状态(Saving activity state)

 
阅读更多
保存activity状态(Saving activity state)

         当系统而不是用户自己出于回收内存的考虑,关闭了一个activity之后。用户会期望当他再次回到那个activity的时候,它仍保持着上次离开时的样子。

         为了获取activity被杀死前的状态,你应该为activity实现onSaveInstanceState() 方法。Android在activity有可能被销毁之前(即onPause() 调用之前)会调用此方法。它会将一个以名称-值对方式记录了activity动态状态的Bundle 对象传递给该方法。当activity再次启动时,这个Bundle会传递给onCreate()方法和随着onStart()方法调用的onRestoreInstanceState(),所以它们两个都可以恢复捕获的状态。

         与onPause()或先前讨论的其它方法不同,onSaveInstanceState() 和 onRestoreInstanceState() 并不是生命周期方法。它们并不是总会被调用。比如说,Android会在activity易于被系统销毁之前调用 onSaveInstanceState(),但用户动作(比如按下了BACK键)造成的销毁则不调用。在这种情况下,用户没打算再次回到这个activity,所以没有保存状态的必要。

         因为onSaveInstanceState()不是总被调用,所以你应该只用它来为activity保存一些临时的状态,而不能用来保存持久性数据。而是应该用onPause()来达到这个目的。


分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Android代码-onSaveInstance的辅助库,用于快速恢复Activity状态

    Icepick is an Android library that eliminates the boilerplate of saving and restoring instance state. It uses annotation processing to generate code that does bundle manipulation and key generation, ...

    Android Fragments

    偏好设置是存储用户个性化设置的一种方式,而保存状态则是在Activity重启时确保数据不丢失的关键技术。 - **使用SharedPreferences**:介绍如何使用SharedPreferences来存储简单的键值对数据。 - **保存Fragment的...

    Android 游戏框架

    5. **状态保存(State Saving)**:为了支持多任务切换和游戏进度保存,游戏框架应提供状态保存和恢复机制。在`onSaveInstanceState()`和`onRestoreInstanceState()`方法中,可以实现游戏状态的持久化,确保玩家在离开...

    Android Application Security Essentials

    Saving the Activity state 21 Saving user data 23 Service 23 Service declaration 24 Service modes 25 Lifecycle management 26 Binder 28 Content Provider 29 Provider declaration 30 Other security ...

    Professional_Android_2_Application_Development

    - 如何保存和恢复Activity的状态。 - SharedPreferences的使用技巧。 - 内部存储与外部存储的区别。 ##### 7. Databases and Content Providers - **目标**: 分析如何使用SQLite数据库以及Content Provider机制...

    Professional Android 4 Application Development 源代码

    Chapter 7: Files, Saving State,and Preferences Saving Simple Application Data Creating and Saving Shared Preferences Retrieving Shared Preferences Creating a Settings Activity for the Earthquake ...

    RecyclerView新特性

    6. **状态保存与恢复(State Saving & Restoration)** RecyclerView能够自动保存和恢复其状态,即使在配置更改或Activity重建后也能保持用户滚动的位置。开发者只需要确保Adapter中的数据在适当的时候被保存和恢复...

    android4 专业应用开发

    - **Files, Saving State, and Preferences**(第7章):这一章节详细介绍了如何在Android应用中保存和读取数据。内容覆盖了文件操作、状态保存以及使用SharedPreferences进行简单数据存储的方法。 - **Databases ...

    Android4高级编程(第3版)英文原版.pdf

    第七章:Files, Saving State, and Preferences 应用往往需要处理文件、保存应用状态以及用户偏好设置,本章将介绍如何使用文件输入输出、状态保存机制以及如何处理应用的配置信息。 第八章:Databases and Content...

    Professional Android 2 Application Development [1e, 2010].pdf

    ### 第6章:Files, Saving State, and Preferences 这一章节关注数据持久化,包括如何在应用内部存储文件(File)、如何保存和恢复应用状态,以及如何使用SharedPreferences进行轻量级的数据存储。 ### 第7章:...

    Professional Android 4 Application Development

    7. **第7章:Files, Saving State, and Preferences** - 文件存储的方式和优缺点比较。 - SharedPreferences的使用方法。 - 应用程序状态保存的最佳实践。 8. **第8章:Databases and Content Providers** - ...

    android学习\android开发相关书籍\Mars的参考书\[android.开发书籍

    - **第6章**:“Files, Saving State, and Preferences” - 介绍数据存储方法,如文件系统、状态保存及偏好设置管理。 - **第7章**:“Databases and Content Providers” - 探讨SQLite数据库的使用方法及如何通过...

    Pro Android 4 (Professional Apress)

    探讨了在Android应用中保存用户设置和应用状态的方法,包括使用SharedPreferences进行简单的键值对存储,以及如何保存和恢复Activity的状态信息。 ##### 14. Exploring Security and Permissions 深入讨论了Android...

    Android4高级编程(第3版)英文版

    7. **Files, Saving State, and Preferences**:本章节讲解Android应用中的数据存储机制,包括使用文件系统、偏好设置(Preferences)保存用户设置和应用状态等。 8. **Databases and Content Providers**:数据库...

Global site tag (gtag.js) - Google Analytics