Activity切换时保存数据的方法
来源:互联网 发布:月相日历软件 编辑:程序博客网 时间:2024/05/18 01:03
在Activity切换时,当前Activity的数据需要保存,否则会丢失.
1.使用onSaveInstanceState()和onRestoreInstanceState()方法:
使用onSaveInstanceState()保存数据,可直接提取数据也可使用onRestoreInstanceState()提取数据;
例:复写onSaveInstanceState()方法保存数据:
protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putString("KEY", "传递的字符串参数值");}
在onCreate()中提取保存的数据:
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (savedInstanceState != null) { String str = savedInstanceState.getString("KEY"); Log.i(TAG, "接收到得字符串:"+str); }}注意:此方法只能传递String、boolean、int、float等基本数据类型的数据;
2.使用onRetainNonConfigurationInstance()和getLastNonConfigurationInstance()方法:
例:使用onRetainNonConfigurationInstance()返回需传递的数据:
public MyObject onRetainNonConfigurationInstance() { //layout.removeAllViews();此时返回的对象实例如果是已经添加进Activity的View对象,需要现将其移出 return this.myObject;}
在onCreate()中提取保存的数据:
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); myObject = (MyObject) this.getLastNonConfigurationInstance(); if(null == myObject){ myObject = new MyObject(this); }}注意:此方法可传递任意类型的数据,包括对象实例。
onSaveInstanceState()与onRetainNonConfigurationInstance()的执行时机。
3.将待传递的数据保存进文件或者数据库中,在新Activity中重新读取。
参考:
http://www.sytarena.com/3gajswz/20130408/744.html
http://blog.csdn.net/manp1212/article/details/7678512
http://coolxing.iteye.com/blog/1279447
- Activity切换时保存数据的方法
- Activity嵌Fragment,如何切换时保存当前数据
- 保存Activity的状态(切换横竖屏时)
- activity异常生命周期下的退出数据保存的方法
- activity的onPause保存数据
- 保存Activity的临时数据
- Activity运行时数据保存
- 保存数据的方法
- Activity的生命周期以及 退出时Bundle的数据保存
- Iwfu-保存Fragment切换时的UI状态/保存销毁Activity后再次进入的视图状态
- 一个保存数据的方法(可以切换存放的位置,可以设置密钥)
- Android横竖屏切换数据保存的方法以及onSaveInstanceState() 的实现
- Activity在切换屏幕时的方法调用【转】
- Activity在切换屏幕时的方法调用【转】
- Android 横竖屏切换时Activity不重启的方法
- 保存和恢复activity的状态数据
- 保存和恢复activity的状态数据
- Activity异常情况下的数据保存
- 枚举窗口列表中的所有父窗口(顶级和被所有窗口)
- ClientToScreen这个函数的功能:该函数将指定点,或者矩形的用户坐标转换成屏幕坐标。
- const char*、char*及字符串常量的正确使用
- 寻找数组中频率超过一半的数字
- Jquery网页打印
- Activity切换时保存数据的方法
- 局部二值模式LBP(Local Binary Pattern)实现代码
- jQuery 遍历 - map() 方法
- C语言的 Switch Case 的小问题
- 系统性能分析和优化
- softirq(软中断)下半部中tasklet与workqueue的区别,整合
- 最小生成树之prim算法
- 学习之响应式Web设计:Media Queries和Viewports
- kde与gnome