博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 数据存储
阅读量:6870 次
发布时间:2019-06-26

本文共 2422 字,大约阅读时间需要 8 分钟。

本文来自:

       数据存储Data Storage

       概览Storage quickview
       系统偏好:快速,轻量级存储
       文件:存储到设备内部或可移动闪存
       数据库:任意的结构化存储
       支持基于网络的存储
       无论你是否想把应用程序数据输出给别人,你总需要有一个方法来保存它。Android提供了下面4种机制来保存和获取数据:系统偏好Preferences,文件Files,数据库Databases和网络Network。
        系统偏好Preferences
       系统偏好是一个用来存放和提取元数据类型键-值对的轻量级机制。它通常用来存放应用程序偏好,例如一个应用程序启动时所使用的默认问候或文本字体。通过调用Context.getSharedPreferences() 来读写数值。如果你想分享给应用程序中的其它组件,可以为你的偏好集分配一个名字,或者使用没有名字的Activity.getPreferences()方法来保持对于该调用程序的私有性。你不能跨应用程序共享偏好(除了使用一个内容提供器)。
       下面是一个为计算器设置按键静音模式的例子:
java代码:

import
android.app.Activity;
import
android.content.SharedPreferences;
public
class
Calc
extends
Activity {
public
static
final
String PREFS_NAME
=
"
MyPrefsFile
"
;
@Override
protected
void
onCreate(Bundle state){
super
.onCreate(state);
SharedPreferences settings
=
getSharedPreferences(PREFS_NAME,
0
);
boolean
silent
=
settings.getBoolean(
"
silentMode
"
,
false
);
setSilent(silent);
}
@Override
protected
void
onStop(){
super
.onStop();
SharedPreferences settings
=
getSharedPreferences(PREFS_NAME,
0
);
SharedPreferences.Editor editor
=
settings.edit();
editor.putBoolean(
"
silentMode
"
, mSilentMode);
editor.commit();
}
}

       文件Files

       你可以直接在移动设备或可移动存储媒介里存放文件。缺省情况下,其它应用程序不能访问这些文件。
为了从文件中读取数据,可调用Context.openFileInput()方法并传递本地文件名和文件路径给它。该方法返回一个标准的Java FileInputStream 对象。为了写一个文件,可调用Context.openFileOutput()并传递文件名和路径,这个方法也返回FileOutputStream对象。从另外的应用程序中调用这些方法将不起作用,你只能访问本地文件。
如果你有一个静态文件需要在编译时打包进应用程序,你可以保存该文件在你项目中res/raw/myDataFile,然后使用Resources.openRawResource (R.raw.myDataFile)打开它。该方法返回一个InputStream对象,你可以使用它读取文件数据。
        数据库Databases
        Android API包含对创建和使用SQLite数据库的支持。每个数据库都是创建它的应用程序所私有的。
这个SQLiteDatabase对象代表了一个数据库并包含与之交互的方法-生成查询和管理数据。为了创建数据库,调用SQLiteDatabase.create()并同时子类化SQLiteOpenHelper。
       作为支持SQLite数据库的一部分,Android暴露了数据库管理函数,这让你可以存储复杂的数据集合,这些数据被包装到有用的对象里。比如,Android为联系人信息定义了一个数据类型;它由很多字段组成,其中包括姓,名(字符串),地址信息和电话号码(也是字符串),照片(位图图像),以及更多其它个人信息。
Android装载了sqlite3数据工具, 利用这些工具你可以浏览表内容,运行SQL命令,并执行SQLite数据库上的其它有用的函数。请查阅检查数据库(Examine databases (sqlite3))得知如何运行这个程序。
所有的数据库,SQLite以及其它,都被保存在设备如下目录里:/data/data/package_name/databases.
       讨论创建多少表格,包含哪些字段以及它们之间如何连接超出了本文的范围,不过Android并没有引入任何在标准SQLite概念之外的限制。我们确实推荐包含一个自增长数值的关键域,作为一个唯一ID用来快速查找一个记录。这对于私有数据并不必要,但如果你实现了一个内容提供器,你必须包含这样一个唯一ID字段。请参见Content Providers文档以获取关于该字段的更多信息,以及NotePadProvider类(在NotePad例子代码里)中创建和组装一个新数据库的方法。你创建的任何数据库都将可以通过名字被应用程序中其它的类访问,但不能从应用程序外部访问。
       网络Network
       你也可以使用网络来存放和获取数据(当它可用时)。要进行网络操作,可使用如下程序包中的类:        java.net.*android.

原文地址:

转载于:https://www.cnblogs.com/yyq-quan/archive/2011/07/09/2101965.html

你可能感兴趣的文章
驼峰设计 PPT美化
查看>>
hcl DHCP与snooping的实践操作 中有个问题
查看>>
Python Python 正则 取中括号值
查看>>
springMVC-接收数据-参数绑定
查看>>
OOM问题定位方法
查看>>
hadoop day 4
查看>>
SCVMM 2012 SP1 Beta 体验(一)安装准备
查看>>
Lync Server 2013功能部署系列之七 实现Lync Server 与Exchange Server集成的功能
查看>>
老王学Linux-NFS
查看>>
这一次,我们用最详细的方式解析Android消息机制的源码
查看>>
bash之条件判断语句及循环语句
查看>>
shell-5:case比if(elif else)方便
查看>>
R基础数据类型2DAY
查看>>
shell脚本之 if,case,for的用法
查看>>
loadrunner12--tree
查看>>
安全多方计算(MPC)从入门到精通:经典案例
查看>>
自动化运维之Ansible安装及基本模块应用
查看>>
Linux文件权限详解
查看>>
OSPF 多区域原理与配置
查看>>
面试题2
查看>>