微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > Android的多种数据存储方法

Android的多种数据存储方法

时间:10-10 来源:互联网 点击:

Android为你提供了若干选项用于存储应用程序数据。选择何种方案时情况而定。比如,数据仅为你的应用所使用,或是可是为其他应用(以及用户)所共享。又比如,你的数据需要多少空间。

数据存储有以下几个选择:

Data_Storage#.E4.BD.BF.E7.94.A8.E5.85.B1.E4.BA.AB.E7.9A.84.E9.85.8D.E7.BD.AE_-_Using_Shared_Preferences|Shared Preferences|公共配置-Shared Preferences

通过键值对的方式存储私有的原始数据。

Data_Storage#.E4.BD.BF.E7.94.A8.E5.86.85.E9.83.A8.E5.AD.98.E5.82.A8_-_Using_the_Internal_Storage|Internal Storage|内部存储-Internal Storage

在存储器上存储私有的数据。

Data_Storage#.E4.BD.BF.E7.94.A8.E5.86.85.E9.83.A8.E5.AD.98.E5.82.A8_-_Using_the_Internal_Storage|External Storage | 外部存储 - External Storage

在外部存储器上存储公开的数据。

Data_Storage#.E4.BD.BF.E7.94.A8.E6.95.B0.E6.8D.AE.E5.BA.93_-_Using_Databases|SQLite Database | SQLite数据库 - SQLite Database

在私有的数据库中存储结构化的数据。

Data_Storage#.E4.BD.BF.E7.94.A8.E7.BD.91.E7.BB.9C.E8.BF.9E.E6.8E.A5_-_Using_a_Network_Connection|Network Connection | 网络连接 - Network Connection

使用你的网络服务器存储数据。

Android提供了暴露私有数据给其他应用的方法——使用一个内容提供器(content provider)。内容提供器是一个可选的组件,为你的应用程序数据提供读/写权限,并受制于你给定的限制。关于使用内容提供器的更多细节,请查看Content Providers的文档。

使用共享的配置 - Using Shared Preferences

SharedPreferences类提供了一个通用的框架,用于保存和检索以持久化的键值对形式存储的原始数据类型。你可以使用SharedPreferences保存任意类型的原始数据:布尔(boolean),浮点,(float),整型(int),长整型(long)和字符串(string)。这些数据将会存放在用户会话中(即使你的应用程序已经退出)。

* 用户配置*

共享的配置并非一定要保存用户配置,例如用户选择和哪个铃声。如果你有兴趣为你的应用创建用户配置,请参考PreferenceActivity。它提供了一个Activity的框架,可以用来创建持久化的用户配置(使用共享的配置)。

在应用程序中取得SharedPreferences对象,使用以下两种方法之一:

* int) getSharedPreferences() getPreferences()](http://developer.android.com/reference/android/content/Context.html#getSharedPreferencesjava.lang.String,)( - 当你仅需要一个配置文件。由于这是你的Activity的唯一一个配置文件,所以不必提供名称。

向SharedPreferences写入值的步骤:

1、调用edit(),取得一个SharedPreferences.Editor。

2、使用形如boolean) putBoolean() putString()](http://developer.android.com/reference/android/content/SharedPreferences.Editor.html#putStringjava.lang.String,)这样的方法添加值。(

3、使用commit()提交新值。

从SharedPreferences读取值,使用它的方法,例如boolean) getBoolean() getString()](http://developer.android.com/reference/android/content/SharedPreferences.html#getStringjava.lang.String,)即可。(

这是一个例子,在一个计算器中使用无声的按键保存一个配置:

class extends { static String PREFS_NAME ; protected (){ .onCreate); . // Restore preferences color:#660>(PREFS_NAME0boolean silent settings(, ); setSilent); @Override void onStopsuper(); // All objects are from android.context.Context color:#660>(PREFS_NAME0SharedPreferencesEditor editor settings(); editor(, mSilentMode// Commit the edits! editor(); }

使用内部存储 - Using the Internal Storage

你可以直接将文件保存在设备上的内部存储中。缺省情况下,存放于内部存储的文件为你的应用程序所私有,其他应用程序不能够访问它们(其他用户亦然)。当用户卸载你的应用,这些文件也被删除。

在内部存储中创建并写入一个私有文件:

1、调用openFileOutput(),传入文件名和操作模式。方法返回一个FileOutputStream对象。

2、使用write()写文件。

3、使用close()关闭文件流。

例如:

color:#080>hello_fileString color:#080>hello world!FileOutputStream fos openFileOutput, .MODE_PRIVATE.writestring());fos();

MODE_PRIVATE创建文件(或以同名文件替换),并为你的应用所私有。其他可用的模式有:

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top