Android学习笔记之9数据存储

数据存储

典型的桌面OS的文件系统是公共文件系统——任何软件可以使用它来存储和读取文件,改文件也可以被其他应用程序所读取。

Android提供了不同的文件系统,所有应用程序数据为该应用程序私有。当然也可以通过统一的借口提供给其他应用程序访问。

 

10.1SharedPreferences

用于存储简单的配置信息,如欢迎语、用户名及密码,以键值对方式存储。

初始化对象:

SharedPreferences setting= getSharedPreferences(“SEETING_INFO”,0);

接受前端输入并保存:

Setting.edit().putString(“name”,X.getText().toString());

获取保存的值

Setting.getString(“name”,””);

 

界面生成时一般执行onCreate(),退出时一般执行onStop();

 

SharedPreferences一般以XML形式保存。SEETING_INFO.xml

 

10.2类似Java I/O形式的接口:openFileInputOpenFileOutput

示例:

FileOutputStream fos = openFileOutput(“文件名”,Context.MODE_PRIVATE—写入模式);

FileInputStream  fis = openFileInput(“文件名”,);

FileOutputStream创建的文件其他应用程序无法读取。如需共享,则需要使用ContentProvider

 

如果应用程序需要额外的资源文件,可将其放在res/raw目录下,使用getResources获取资源。

Resource res = getResources();

InputStream is = res.openRawResource(R.raw.fileId);

10.3SQlite

Android使用SQLite作为数据库。支持SQL语句,轻量级嵌入式数据库。

一个SQLiteDatabase示例代表一个SQLite数据表,数据库在Android中的私有的,名字也是唯一的。

 

SQLiteOpenHelper用于生成数据库,并对数据库版本管理。调用getWritableDatabase()getReadableDatabase()时,如无数据库,则生成一个。

是抽象类,需要继承并实现3个方法:onCreate()

onCreate():数据库第一次生成时使用,在该方法中生成数据库表。

onUpdate():数据库升级时,系统主动调用该方法。一般在该方法中删旧表,建新表。

OnOpen():打开数据库时的回调函数,一般不会用到。

 

Android日志打印级别:VerboseDebugInfoWarningError

 

Cursor是随机读写数据库查询结果的借口

ContentValues以键值对存储数据,键位Sring类型,值为基础类型。

 

SimpleCursorAdapter负责将Cursor中的数据放到ListView中。同理ArrayAdapter

10.4ContentProvider

一个应用程序可以通过ContentProvider的接口将自己的数据暴露出去,外界通过其他接口读写数据。

常用的接口是query(),insert(),update(),delete()

 

外界通过ContentResolver访问ContentProvider中的数据。在Android中,通过getContentResolver()获取现有应用中的ContentResolver实例。

 

ContentResolverContentProvider通过URL读写数据。URL可以是指定全部数据,可以是某个ID的数据。

URL由三部分组成:

Content://+要获取数据的字符串片段+ID

 

startManagingCursor(Corsor):系统管理生成的Corsor

 

ListView中的id 必须声明为@+id/Android:才能被ListView引用。

 

Android数据库中,每个表都有一个_id字段。

 

10.5网路存储

WebService

若需访问外部网络,需要在AndroidManinfest.xml中加入代码申请许可权限:

<use-permission Android:name=”Android.permission.INTERNET”

HttpPost访问:request=new HttpPost(url网址)

Request.setEntry();

Try{

    HttpResponse response=new DefaultHttpClient().execute(request);

If(response.getStatueLine().getStatueCode()!=404)

   String result=EntityUtil.toString(response.getEntity());

}catch(Exception e){

 

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值