Android的数据存储---可供选择的存储方案(一)

本文介绍了Android平台上的多种数据存储方式,包括SharedPreferences、InternalStorage、ExternalStorage、SQLiteDatabases及NetworkConnection等,每种方式适用于不同场景,如私有数据、共享数据及结构化数据等。

本文译自:http://developer.android.com/guide/topics/data/data-storage.html

Android为持久化的保存数据提供了几种可选择的方案。具体选择哪种方案要依赖你的特定需求,如数据是你的应用程序私有的,还是其他的应用程序(和用户)可访问的,以及数据所需要的空间等。

以下是可选择的存储方案:

Shared Preferences

   用键-值对的形式保存私有的原始数据。

Internal Storage

   在设备内存中保存私有数据。

External Storage

   在共享的外部存储器上保存公共的数据

SQLite Databases

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

Network Connection

   在Web上用你自己的网络服务器来保存数据。

为了把你的数据(即使是私有数据)暴露给其他的应用程序,Android提供一种方法---使用content provider。Content Provider是暴露你的应用程序数据的读写访问的一种可选组件,并对其施加任何你想要的限制。关于使用Conent Provider的更多信息,请看Content Providers文档。

使用Shared Preferences

SharedPreferences 类提供了通用的框架,它允许你保存和获取持久化的原始数据类型的键-值对。你可以使用SharedPreferences来保存任何原始类型的数据:boolean,float,int,long和string。这种数据会跨用户会话保存(即使你的应用程序被杀死)。

使用以下两种方法来获取SharedPreferences对象:

1. getSharedPreferences()--- 如果你需要通过名称标识来获取多个Preferences文件,就要使用这个方法,这个方法第一个参数指定了Preferences文件名。

2. getPreferences()--- 如果你仅需要一个针对你的ActivityPreferences文件,请使用这个方法,因为这个方法仅是针对你的ActivityPreferences文件,你不需要提供名称。

数据保存方法:

1. 调用edit()方法来获得SharedPreferences.Editor 对象

2. 使用诸如putBoolean()putString() 方法来添加值

3. 使用commit()方法来提交新的值。

使用诸如getBoolean()getString()方法来读取数据。

以下示例,保存了计算器应用的静音按键的偏好:

public class Calc extends Activity {

    public static final String PREFS_NAME = "MyPrefsFile";

    @Override

    protected void onCreate(Bundle state){

       super.onCreate(state);

       . . .

 

       // Restore preferences

       SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);

       boolean silent = settings.getBoolean("silentMode", false);

       setSilent(silent);

    }

    @Override

    protected void onStop(){

       super.onStop();

      // We need an Editor object to make preference changes.

      // All objects are from android.context.Context

      SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);

      SharedPreferences.Editor editor = settings.edit();

      editor.putBoolean("silentMode", mSilentMode);

      // Commit the edits!

      editor.commit();

    }

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值