Android中有四种方法保存数据,分别适用于不同情况的需求。它们都各自有相应的优缺点,所以当开发者决定选择应用哪种方法之前,先要考虑当前所操作的情况是否适合于所选择的方法。
        
  1. Preferences
  2. Files
  3. Databases
  4. Network

1. Preferences从其保存数据的结构来分析,是一个较轻量级的存储数据的方法。类似于我们常用的ini文件保存软件初始化设置,同样在Android平台常用于存储较简单的参数设置。例如,可以通过它保存上一次用户所作的修改或者自定义参数设定,当再次启动程序后依然保持原有的设置,可以用于在自动登录时保存用户的用户名和密码等信息。

通过Context.getSharedPreferences()方法来读写数值,这个方法通过设置name来使得同一个程序内的其它模块共享数据。如果不需要与其它模块共享数据,可以使用Activity.getPreferences()方法保持数据私有。需要着重强调一点,无法直接在多个程序间共享Preferences数据(不包括使用Content Providers)。

下面是一个实例来了解实际使用方法:

        
  1. importandroid.app.Activity;
  2. importandroid.content.SharedPreferences;
  3. publicclassCalcextendsActivity{
  4. publicstaticfinalStringPREFS_NAME="MyPrefsFile";
  5. ....
  6. Override
  7. protectedvoidonCreate(Bundlestate){
  8. super.onCreate(state);
  9. ....
  10. //Restorepreferences
  11. SharedPreferencessettings=getSharedPreferences(PREFS_NAME,0);
  12. booleansilent=settings.getBoolean("silentMode",false);
  13. setSilent(silent);
  14. }
  15. @Override
  16. protectedvoidonStop(){
  17. super.onStop();
  18. //Saveuserpreferences.WeneedanEditorobjectto
  19. //makechanges.Allobjectsarefromandroid.context.Context
  20. SharedPreferencessettings=getSharedPreferences(PREFS_NAME,0);
  21. SharedPreferences.Editoreditor=settings.edit();
  22. editor.putBoolean("silentMode",mSilentMode);
  23. //Don'tforgettocommityouredits!!!
  24. editor.commit();
  25. }
  26. }

2. Files从这是第二种方法,可以在设备本身的存储设备或者外接的存储设备中创建用于保存数据的文件。同样在默认的状态下,文件是不能在不同的程序间共享。写文件:调用Context.openFileOutput()方法根据指定的路径和文件名来创建文件,这个方法会返回一个FileOutputStream对象。读取文件:调用Context.openFileInput()方法通过制定的路径和文件名来返回一个标准的Java FileInputStream对象。(注意:在其它程序中将无法应用相同的路径和文件名来操作文件)。另外编译程序之前,在res/raw/tempFile中建立一个static文件,这样可以在程序中通过Resources.openRawResource (R.raw.myDataFile)方法同样返回一个InputStream对象,直接读取文件内容。

3. Databases在Android API中包括了应用SQLite databases的接口,每个程序所创建的数据库都是私有的,换句话说,程序间无法相互访问对方的数据库。在程序中创建SQLiteDatabase对象,其中包含了大部分与database交互的方法,例如:读取数据或者管理当前数据。可以应用SQLiteDatabase和其subClassSQLiteOpenHelper的create()方法来创建新的数据库。对于SQLitedatabase而言,其强大和方便的功能为Android提供了强有力的存储功能。特别是存储一些复杂的数据结构,例如:Android特别为通讯录创建了特有的数据类型,其中包含了非常多的子集而且涵盖了大部分的数据类型 “First Name” “Last Name” “PhoneNumber”和“Photo”等。Android可以通过Sqlite3 database tool来查看指定数据库中表的内容,直接运行SQL命令来快速便捷的直接操作SQLite database。
数据库在设备中保存的地址是 /data/data/package_name/databases

4. Network通过网络来获取和保存数据资源,这个方法需要设备保持网络连接状态,所以相对存在一些限制。下面列出了两个用于相关操作的类:

        
  1. java.net.*
  2. android.net.*

更多相关文章

  1. A005-AS项目结构解析
  2. Android上HDMI介绍(基于高通平台)
  3. 【Android(安卓)Basic Training - 02】基本网络操作 [ Lesson 1
  4. Android获取网络图片并显示的方法
  5. http://www.jianshu.com/p/7e46fe7485bb
  6. Android的程序关联和自定义类型文件的方法步骤和实现过程
  7. 数据存储之五网络数据交互
  8. Android(安卓)自定义View--ProgressBar篇(二)
  9. Android(安卓)使用GPS定位获取经纬度的方法

随机推荐

  1. 追格答题考试小程序 一款适用于事业单位
  2. 可编辑表格,固定抬头
  3. 点击弹出球
  4. 固定导航栏
  5. github的clone有安装不了依赖的问题错误
  6. JS操作DOM,两个简单的小案例
  7. js实现简单好玩的气泡
  8. 鞋子怎么画?各种角度鞋子的绘画教程!
  9. 拖动的页面 滚动导航固定上方
  10. 一个可编辑的表格 双击进行编辑,回车确认