Android 资料存储与共享
在Android中主要有以下几种机制来处理资料的存储和与共享:
l Shared Preferences :用来存储键值格式数据,是一个轻量级的键值存储机制,它只能够用来存储基本数据类型。
l Files :它通过FileInputStream和FileOutputStream对文件进行操作。
l SQLite Databases :Android所提供的标准数据库,支持SQL语句。
l Network Connection :通过网络来存储以及获取数据。
在其它一般的操作系统中都会提供资料共享机制,使得应用程序之间可以存储与传递数据,将数据共享到共用容器中,然后通过许可就可以实现这些共享数据的访问,但是,在android系统当中所设计的所有数据都是为应用程序所独有的,所以,在android中,如果想要访问其它应用程序的数据或者将数据提供给其它应用程序,那么需要通过Android系统所提供的特有的方式,这种方式为: Content Provider,用这个组件来共享资料。
一. 数据存储之—Shared Preferences
这种存储方式类似于我们常用的ini文件,用来保存应用程序的一些属性设置,在Android平台用来存储较简单的参数设置。
Android系统提供的SharedPreferences为一个接口类,想要实现其实例对象,有两种方式:
一种是通过Context对象来调用getSharedPreferences(String name, int mode)方法,另一种是通过Activity对象来调用getPreferences(int mode)方法。两者区别仅在于第一种方法多了一个参数,这个参数用来指定存放SharedPreferences的文件名,第二个方法没有这个参数,因为它会默认去得到该应用程序的类名,用它来作为该文件的文件名。
SharedPreferences暂且翻译优先资料存储,用它来存储的数据会存放在/data/data/该应用程序名/shared_prefs文件夹下,它为一个xml格式的文件。
在获取优先资料存储对象后,就可以通过get方法来得到相应的存储数据,这是一个键值方法,对于数据的存储,通过SharedPreferences接口下的内部接口Editor来实现,它的实例通过SharedPreferences对象调用edit()方法来实现,然后通过Editor对象调用put方法来存储数据,不过一定要注意最后要使用commit()方法来保存是数据。
下面一个实例来说明:
通过一个编辑框来设置其属性,用TextView来显示该属性。
实现类如下:
布局文件如下: