Activity的状态保存
当点击home键或程序运行过程中突然来电话等意外情况或屏幕方向改变时,会调用onSaveInstanceState()方法进行保存数据到手机硬盘上,再次运行Activity时则调用onRestoreInstanceState()方法从硬盘中取出以保存的数据。也可从onCreate()方法中的bundle对象中取数据:
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- txt=(EditText)findViewById(R.id.txt);
- if (null!=savedInstanceState&&savedInstanceState.containsKey(CONTENT))
- {
- txt.setText(savedInstanceState.getString(CONTENT));
- }
- secondBtn=(Button)findViewById(R.id.secondBtn);
- secondBtn.setOnClickListener(listener);
- Log.i(TAG, "MainActivity-->onCreate");
- }
- public class PreferencesActivity extends Activity {
- private String name;
- protected void onRestoreInstanceState(Bundle savedInstanceState) {
- name = savedInstanceState.getString("name"); //被重新创建后恢复缓存的数据
- super.onRestoreInstanceState(savedInstanceState);
- }
- protected void onSaveInstanceState(Bundle outState) {
- outState.putString("name", "liming");//被摧毁前缓存一些数据
- super.onSaveInstanceState(outState);
- }
- }
当Activity重新创建时,会先执行onCreate()方法,再执行onRestoreInstanceState()方法,也可以在onCreate()方法中取数据
②使用Activity默认的Shared Preference,也可以保存数据。
如果需要单击返回按钮退出程序后,下次进入仍然可以保留数据,可以在onPause()方法中设置共享参数,实际是将数据保存在系统的xml文件中
- protected void onPause(){
- super.onPause();
- //SharedPreferences uiState = getPreferences(0);
- //SharedPreferences.Editor editor = uiState.edit();
- //editor.putString(TEXT_ENTRY_KEY, myEditText.getText().toString());
- //editor.putBoolean(ADDING_ITEM_KEY, addingNew);
- //editor.commit();// Commit the preferences.
- //或:
- this.getPreferences(MODE_PRIVATE).edit().putString(TEXT_ENTRY_KEY, myEditText.getText().toString());
- }
在onResume()方法中取数据
- protected void onResume(){
- super.onResume();
- this.getPreferences(MODE_PRIVATE).edit().getString(TEXT_ENTRY_KEY,…………
- }
转载于:https://blog.51cto.com/dreamboy/723871
Activity的状态保存相关推荐
- Activity具体解释(生命周期、以各种方式启动Activity、状态保存,全然退出等)...
一.什么是Activity? 简单的说:Activity就是布满整个窗体或者悬浮于其它窗体上的交互界面.在一个应用程序中通常由多个Activity构成,都会在Manifest.xml中指定一个主的Ac ...
- Activity详细解释(生命周期、以各种方式启动Activity、状态保存,等完全退出)...
一.什么是Activity? 简单的说:Activity或者悬浮于其它窗体上的交互界面. 在一个应用程序中通常由多个Activity构成.都会在Manifest.xml中指定一个主的Activity, ...
- Android Activity中状态保存机制
在Activity中保存用户的当前操作状态,如输入框中的文本,一般情况下载按了home键后,重新进入文本框中的东西会丢下,所以我们要保存当前页面信息,如在写短信的时候接到一个电话,那么当你接电话的时候 ...
- Android Fragment使用(三) Activity, Fragment, WebView的状态保存和恢复
Android中的状态保存和恢复 Android中的状态保存和恢复, 包括Activity和Fragment以及其中View的状态处理. Activity的状态除了其中的View和Fragment的状 ...
- android 自动恢复,Android的状态保存和恢复
Activity的状态保存和恢复 Activity的状态什么时候需要保存和恢复 Activity的销毁一般分为两种情况: 当用户按返回按钮或你的Activity通过调用finish()销毁时,这属于正 ...
- 【Android 应用开发】Activity 状态保存 OnSaveInstanceState参数解析
作者 : 韩曙亮 转载请著名出处 : http://blog.csdn.net/shulianghan/article/details/38297083 一. 相关方法简介 1. 状态保存方法示例 p ...
- 保存Activity的状态
如果你想保存Activity的信息(例如,类实例的变量)而又不需要和其它的组件共享的话,你可以调用Activity的getPreferences方法,不用指定一个Preference的名字.对返回的S ...
- 【Android 应用开发】Activity 状态保存 OnSaveInstanceState參数解析
作者 : 韩曙亮 转载请著名出处 : http://blog.csdn.net/shulianghan/article/details/38297083 一. 相关方法简单介绍 1. 状态保存方法演示 ...
- Activity 生命周期与状态保存
看API的时候,零零散散的记录下来的,看完了总算对Activity的生命周期有了一个全面的了解.相信会对大家有些帮助的. onCreate->onRestart->onStart-> ...
最新文章
- java学习笔记-4.7
- NHibernate学习系列一
- 【C/C++】运算结果出现1.#Q0问题分析
- python web开发 JavaScript基础
- java数据库配置_java--数据库(文件配置连接,自定义连接池)
- RTT线程管理篇——rtt线程恢复
- 登录或连接MYSLQ 提示 error 1045 access denied for user 'root@127.0.0.1' 错误
- AIX 系统下做 rootvg
- Enabled AWE
- mysql 总分区表限制_MySQL分区表的局限和限制详解
- 人工智能 企业变革_我们如何利用(人工)情报变革医院的运营管理
- 如何快速搭建一套完整的网络直播平台
- mysql tmp mysql.sock_MySQL搭建过程中的“/tmp/mysql.sock错误解决
- 微信公众平台配置——URL、Token和JS安全域名
- 老子研究文献知识发现数据竞赛
- luoguP1888 【三角函数】
- FMDB - 数据库操作
- 打击标题党 详述清风算法
- Linux网络基础之DNS服务
- kylin(麒麟)系统高分率字体小解决方案
热门文章
- oracle_plseq客户端中文乱码
- mysql 添加时间戳列
- NSIS 打包 win7 中无法删除快捷方式
- php安全性差,PHP安全性防范方式
- python3高级语法:__slots__属性、property装饰器、上下文管理协议、__new__方法
- php 返回查询结果某个字段
- 深入理解 Java 内存模型(转载)
- 一维循环数组最大子数组求解
- CentOS 7 上安装 redis3.2.3安装与配置
- 两个单体内置对象_Global和Math