1 使用SharedPreferences存储数据
适用范围:保存少量的数据,且这些数据的格式非常简单:字符串型、基本类型的值。
比如应用程序的各种配置信息(如是否打开音效等),解锁口 令密码等
核心原理:保存基于XML文件存储的key-value键值对数据,通常用来存储一些简单的配置信息。
SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过SharedPreferences.edit()获取的内部接口Editor对象实现
实现SharedPreferences存储的步骤如下:
一、根据Context获取SharedPreferences对象
二、利用edit()方法获取Editor对象。
三、通过Editor对象存储key-value键值对数据。
四、通过commit()方法提交数据。
Editor有如下主要重要方法:
SharedPreferences.Editor clear():清空SharedPreferences里所有数据
SharedPreferences.Editor putXxx(String key , xxx value): 向SharedPreferences存入指定key对应的数据,其中xxx 可以是boolean,float,int等各种基本类型据
SharedPreferences.Editor remove(): 删除SharedPreferences中指定key对应的数据项
boolean commit(): 当Editor编辑完成后,使用该方法提交修改
2 文件存储数据
核心原理: Context提供了两个方法来打开数据文件里的文件IO流:
FileInputStream openFileInput(String name);
FileOutputStream openFileOutput(String name , int mode)
注意:创建的文件保存在/data/data/<package name>/files目录,如: /data/data/cn.tony.app/files/message.txt
3 SQLite数据库存储数据
什么是SQLite???
SQLite是轻量级嵌入式数据库引擎,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。
SQLite基本使用!!!
实际开发中,为了能够更好的管理和维护数据库,我们会封装一个继承自SQLiteOpenHelper类的数据库操作类,然后以这个类为基础,再封装我们的业务逻辑方法
针对SQLiteOpenHelper进行阐述:
SQLiteOpenHelper是SQLiteDatabase的一个帮助类,用来管理数据库的创建和版本的更新。一般是建立一个类继承它,并实现它的onCreate和onUpgrade方法。
通过SQLiteDatabase对象操作数据库,进行curd
实例化sqliteDBHelper并获取一个SQLiteDatabase对象,作为整个应用的数据库实例;
在增删改信息时,我们采用了事务处理,确保数据完整性;最后要注意释放数据库资源db.close(),这一个步骤在我们整个应用关闭时执行
查询:
通过SQL语句进行查询
插入操作:
更新操作:
删除操作:
通过SQL语句执行curd操作:
注意:getWritableDatabase()和getReadableDatabase()方法区别
Android使用getWritableDatabase()和getReadableDatabase()方法都可以获取一个用于操作数据库的SQLiteDatabase实例。
(getReadableDatabase()方法中会调用getWritableDatabase()方法) 其中getWritableDatabase() 方法以读写方式打开数据库,一旦数据库的磁盘空间满了,数据库就只能读而不能写,倘若使用的是getWritableDatabase() 方法就会出错。
getReadableDatabase()方法则是先以读写方式打开数据库,如果数据库的磁盘空间满了,就会打开失败,当打开失败后会继续尝试以只读方式打开数据库。如果该问题成功解决,则只读数据库对象就会关闭,然后返回一个可读写的数据库对象。
4 使用ContentProvider存储数据
什么是ContentProvider????
ContentProvider:为存储和获取数据提供统一的接口。可以在不同的应用程序之间共享数据。
并且此种方式忽略了底层的数据存储实现,ContentProvider提供了一种统一的通过Uri实现数据操作的方式
其步骤为:
- 在当前应用程序中定义一个ContentProvider。
- 在当前应用程序的AndroidManifest.xml中注册此ContentProvider
- 其他应用程序通过ContentResolver和Uri来获取此ContentProvider的数据。
ContentResolver提供了insert(), delete(), query()和update()之类的方法。用于实现对ContentProvider中数据的存取操作
5 网络存储数据
Android提供了通过网络来实现数据的存储和获取的方法
如下代码片段:
-
欢迎关注微信公众号、长期为您推荐优秀博文、开源项目、视频
-
微信公众号名称:Android干货程序员
网友评论