`
isiqi
  • 浏览: 16031118 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

持久保存Activity的状态

 
阅读更多

Activity的持久化状态是用getPreferences(int)方法返回的SharedPreferences对象来管理的,这个对象允许使用跟Activity关联的name/value对来获取和编辑Activity私有的状态。这个方法内部只是简单的调用getSharedPreferences(String, int)方法,其中的String参数使用Activity的类名作为偏好的名字。

方法声明:

Public SharedPreferences getPreferences(int mode)

参数说明:

mode:操作模式,有三种可能的选择:

MODE_PRIVATE:默认的操作,创建只能被调用应用程序访问的文件(或者是共享相同用户名的所有应用程序),常量值:00x00000000

MODE_WORLD_READABLE:允许其他应用程序对创建的文件有读取的访问权限。常量值:10x00000001

MODE_WORLD_WRITEABLE:允许其他的应用程序对创建的文件有写的访问权限。常量值:20x00000002

返回值:返回一个能够用于获取或编辑偏好值的SharedPreferences实例对象。

例如:

/*

* Activity显示的时候恢复被挂起或销毁时保存的状态

* @see android.app.Activity#onResume()

*/

@Override

protectedvoid onResume(){

super.onResume();

SharedPreferences prefs = getPreferences(Context.MODE_PRIVATE);

String restoredText = prefs.getString("text", null);

if(restoredText != null){

mSaved.setText(restoredText, TextView.BufferType.EDITABLE);

int selectionStart = prefs.getInt("selection-start", -1);

int selectionEnd = prefs.getInt("selection-end", -1);

if(selectionStart != -1 && selectionEnd != -1){

mSaved.setSelection(selectionStart, selectionEnd);

}

}

}

/*

* Activity被挂起或销毁时,保存当前的状态。

* @see android.app.Activity#onPause()

*/

@Override

protectedvoid onPause(){

super.onPause();

SharedPreferences.Editor editor = getPreferences(Context.MODE_PRIVATE).edit();

editor.putString("text", mSaved.getText().toString());

editor.putInt("selection-start", mSaved.getSelectionStart());

editor.putInt("selection-end", mSaved.getSelectionEnd());

editor.commit();

}

分享到:
评论

相关推荐

    Android中的Activity生命周期总结

    Activity生命周期一般分为四个基本状态,分别是活动状态(running),暂停状态(paused),停止状态(stopped)和死亡状态。 1.活动状态(running) 活动状态一般是指该Activity正处于屏幕最显著的位置上显示,即该Activity...

    实验一Android环境构建与Activity生命周期.doc

    了解项目的基本文件目录结构,了解Activity周期中的4种状态。 【过程】 (1)建立新项目,实现Hello World; 1)打开Eclipse,选择File -> New -> Android Project. 2)填写project name(helloword),然后选择选择...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理Struts和Hibernate。 WebStorage HTML新增的本地存储解决...

    坚持学习WF,WF学习教程

    WF会定期在各个持久性点(Persistence Point)检查并将工作流实例保存到持久化存储中,这样如果工作流出现错误或是异常终止时相关的信息就会被存储,下次加载工作流实例时就会从此做为开始点。这个主要是针对工作内置...

    坚持学习WF

    坚持学习WF(18):使用IPendingWork接口 WF会定期在各个持久性点(Persistence Point)检查并将工作流实例保存到持久化存储中,这样如果工作流出现错误或是异常终止时相关的信息就会被存储,下次加载工作流实例时就会...

    workflow资料

    WF资料 ├─Activity │ │ 1_Activity 类.doc │ │ 2_状态机与顺序工作流的继承结构.doc │ │ 3_顺序工作流容器 SequentialWorkflowActivity .doc │ │ EventDriven绑定容器 ...

    Android面试题(详细答案).doc

     11.activity对一些资源以及状态的操作保存,最好是保存在生命周期的哪个函数中进行(d)  A、onPause() B、onCreate() C、 onResume() D、onStart()  Intent传递数据时,下列的数据类型哪些可以被传递(abcd)...

    Android 常用六大框架

    (6) 和Activity和生命周期的联动(Activity结束时同时取消所有网络请求) 2、android-async-http 项目地址:https://github.com/loopj/android-async-http 文档介绍:http://loopj.com/android-async-http/ (1...

    精通ANDROID 3(中文版)1/2

    9.4 使用首选项保存状态  9.5 参考资料  9.6 小结  第10章 探索安全性和权限  10.1 理解Android安全性模型  10.1.1 安全性概念概述  10.1.2 为部署签名应用程序  10.2 执行运行时安全性检查  10.2.1...

    精通Android 3 (中文版)2/2

    9.4 使用首选项保存状态  9.5 参考资料  9.6 小结  第10章 探索安全性和权限  10.1 理解Android安全性模型  10.1.1 安全性概念概述  10.1.2 为部署签名应用程序  10.2 执行运行时安全性检查  10.2.1...

Global site tag (gtag.js) - Google Analytics