Android开发与应用 教学课件 ppt 作者 张荣 6 数据存储与共享

上传人:E**** 文档编号:89330762 上传时间:2019-05-23 格式:PPT 页数:34 大小:348.50KB
返回 下载 相关 举报
Android开发与应用 教学课件 ppt 作者  张荣 6 数据存储与共享_第1页
第1页 / 共34页
Android开发与应用 教学课件 ppt 作者  张荣 6 数据存储与共享_第2页
第2页 / 共34页
Android开发与应用 教学课件 ppt 作者  张荣 6 数据存储与共享_第3页
第3页 / 共34页
Android开发与应用 教学课件 ppt 作者  张荣 6 数据存储与共享_第4页
第4页 / 共34页
Android开发与应用 教学课件 ppt 作者  张荣 6 数据存储与共享_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《Android开发与应用 教学课件 ppt 作者 张荣 6 数据存储与共享》由会员分享,可在线阅读,更多相关《Android开发与应用 教学课件 ppt 作者 张荣 6 数据存储与共享(34页珍藏版)》请在金锄头文库上搜索。

1、数据存储与共享,on android,本章内容,首选项信息 私有数据存储 公有数据存储与共享 数据文件 内存数据文件 SD卡数据文件 SQLite数据库 SQLite基本操作 SQLiteOpenHelper Content Provider 使用Content Provider发布数据 使用Content Resolver获取数据,数据存取方式,首选项信息Preference “键-值“方式存储,以xml文件的形式保存 数据文件File 采用java.io.*库所提供I/O接口读写文件 数据库SQLite SQLite是轻量级的嵌入式数据库引擎 Content Provider 用于实现不同

2、应用程序之间的数据共享,首选项信息,什么是首选项? 可定制的设置选项或菜单 程序的界面风格、操作习惯、常用列表等数据信息 首选项键值对形式存储 SharedPreferences类 XML文件 应用程序中可以通过指定不同的XML文件名来创建多个首选项信息数据文件,首选项信息,首选项信息的保护和公开模式 MODE_PRIVATE:私有模式 MODE_WORLD_READABLE:全局可读模式 MODE_WORLD_WRITEABLE:全局可写模式,首选项信息:私有数据存储,SharedPreferences获取 public SharedPreferences getSharedPreferen

3、ces(String name, int mode) public SharedPreferences getSharedPreference() 例: SharedPreferences sp = getSharedPreferences(“myShare“, MODE_PRIVATE);,首选项信息:私有数据存储,SharedPreferences提供的方法 boolean getBoolean(String key, boolean defValue) float getFloat(String key, float defValue) int getInt(String key, in

4、t defValue) long getLong(String key, long defValue) String getString(String key, String defValue),首选项信息:私有数据存储,SharedPreferences.Editor SharedPreferences对象只提供读取数据的方法,不能进行数据的存储和修改操作。这些操作需要通过SharedPreferences类的嵌套类SharedPreferences.Editor类所提供的方法来实现 SharedPreferences.Editor获取 Editor editor = sp.edit();,

5、首选项信息:私有数据存储,SharedPreferences.Editor提供的方法 putBoolean(String key, boolean value) putFloat(String key, float value) putInt(String key, int value) putLong(String key, long value) putString(String key, String value) remove(String key) commit() contains(String key),首选项信息:公有数据存储与共享,实现过程 应用1创建首选项模式为: MODE

6、_WORLD_READABLE MODE_WORLD_WRITEABLE 应用2获取上下文环境(共享首选项在包内) Context context = createPackageContext(“com.example.sp“, Context.CONTEXT_IGNORE_ SECURITY); SharedPreferences sp = context.getSharedPreferences(“SPShare“, MODE_WORLD_READABLE); ,首选项信息:实例,实例 数据位于手机目录下:“/data/data/shared_prefs“,数据文件,数据文件特点 首选项信

7、息只能以键值对的形式 保存特定格式数据 FileInputStream FileOutputStream openFileInput() openFileOutput(),数据文件,Context类提供方法 FileInputStream openFileInput(String name) throws FileNotFoundException FileOutputStream openFileOutput(String name,int mode) throws FileNotFoundException mode为文件操作模式,值为整数类型的常量: MODE_PRIVATE:默认输出模

8、式 MODE_APPEND:追加模式 MODE_WORLD_READABLE:全局只读模式 MODE_WORLD_WRITEABLE:全局只写模式 MODE_WORLD_READABLE+MODE_WORLD_WRITEABLE:全局读写模式,数据文件,Context类提供方法 deleteFile():删除文件 getDir():创建/获取一个文件目录 fileList():列出本应用程序创建的所有文件 getFileDir():获取已创建文件的路径,数据文件:内存数据文件,内存数据文件特点 存放少量数据 应用程序卸载时其内存中所关联的数据文件也被删除 由程序创建的数据文件通常被保存在“/d

9、ata/data/files“目录下,数据文件:内存数据文件,实例,数据文件:SD卡数据文件,SD卡数据文件特点 大量数据 在程序中编写检查SD卡是否可用的程序 需申明对SD卡(外部存储空间)的使用权限,数据文件:SD卡数据文件,SD卡数据文件常用操作 判断SD是否存在 获得SD卡路径 例,Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED),File sdCardDir = Environment.getExternalStorageDirectory();,SQLite数据库,SQLite概述 SQL

10、ite是一种轻量级的基于文件的数据库管理系统 由C语言编写,实现了标准SQL中的CRUD操作 SQLite小巧、高效,适用于手机等嵌入式设备中 SQLite内部支持以下几种数据类型: NULL:空值 INTEGER:有符号整数 REAL:浮点数 TEXT:文本字符串 BLOB:二进制字节数据,SQLite数据库,SQLite基本操作方法 public static SQLiteDatabaseopenOrCreateDatabase(String path,SQLiteDatabase.CursorFactory factory) 打开/创建数据库,参数一为数据库文件路径,参数二可为null

11、public void execSQL(String sql) public Cursor rawQuery(String sql, String selectionArgs) boolean moveToNext()/moveToPrevious()/moveToFirst() boolean isFirst()/isLast() int getCount() intgetXXX(intcolumnIndex),SQLite数据库,SQLite基本操作实例 数据库文件保存在目录 “/data/data/files/stu.db3“,SQLite数据库,SQLiteOpenHelper 提供方

12、法辅助创建和打开数据库,管理数据库不同版本 使用时需要创建一个类,继承类SQLiteOpenHelper 重写其相对应的方法来实现创建、打开、更新数据库的操作 常用方法如下 void onCreate(SQLiteDatabase db) void onOpen(SQLiteDatabase db) void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) SQLiteDatabase getWritableDatabase() SQLiteDatabase getReadableDatabase(),SQLite数据库

13、,SQLiteOpenHelper MVC思想 使用分层思想设计数据模块 例子,Content Provider,概念 跨应用程序数据共享的方式 应用可通过Content Provider发布数据,但不会泄露数据在其应用程序内部的组织和存储方式 其他应用可通过Content Resolver来获取某个应用发布出来的共享数据 通信录、通话记录、短信记录、相片库、铃声库等系统应用程序也是通过Content Provider来共享自己的数据,Content Provider,uri是Content Provider提供的访问数据的标签 A:标准前缀,用来说明这是一个Content Provider控

14、制的数据 B:URI的标识,该标识定义了这是哪个Content Provider提供的数据 C:路径,URI中可能不包括路径,也可能包括一个或多个 D:需要获取的记录的ID;如果没有该ID,就表示返回全部数据,Content Provider,使用Content Provider发布数据 Content Provider提供的数据以类似于数据库表的二维结构来组织。每一行表示一条记录,每一行包含若干列。通过调用类ContentProvider提供的方法,其他应用程序可以对提供的数据进行查询、更新、插入、删除等操作 从类ContentProvider派生出一个子类,即自定义一个ContentPro

15、vider,并根据需要重写其中的方法 在AndroidManifest.xml中注册这个自定义的ContentProvider,Content Provider,自定义ContentProvider需重写的主要方法 boolean onCreate() Cursor query(Uriuri,Stringprojection,String selection, String selectionArgs, String sortOrder) int update(Uriuri,ContentValuesvalues, Stringselection,StringselectionArgs) Ur

16、i insert(Uri uri, ContentValues values) int delete(Uri uri, String selection, String selectionArgs) String getType(Uri uri),Content Provider,使用Content Resolver获取数据 通过类Content的getContentResolver()方法可以获得一个类ContentResolver的实例 类ContentResolver的常用方法有: Cursor query(Uri uri,String projection,String selection,String selectionArgs, String sortOrder) int update(Uri uri, ContentValues values, String where, String selectionArgs) Uri insert(Uri url, ContentValues values) int delete(Uri

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号