Saving Data

很多Android app都需要存储数据,即使是在onPause()函数中保存app state.在Android 中存数据主要分为下面三类:
1:以key-value 配对的方式存储数据的preferences file
2:以文件形式直接存储.
3: 以SQlite方式存储.


我们先来看第一种:
在sharePreferences中数据是以key-value 配对的形式存储的。每一个sharePreferences 文件被被framework 管理,可以共有也可以私有.


如何得到一个sharedPreferences文件呢?


你可以通过getSharedPreferences()或getPreferences 来新建一个文件或者打开一个已经存在的文件.
Context context = getActivity();
SharedPreferences sharedPref = context.getSharedPreferences(
        getString(R.string.preference_file_key), Context.MODE_PRIVATE);
也可以通过下面方法获得
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
如果使用MODE_WORLD_READABLE 和 MODE_WORLD_WRITEABLE的话,则这个文件可以被其他app 共享。


写数据到sharePreferences文件


必须新建sharedPreferences.editor.然后调用putInt() 和putString(),最后调用commit()如下所示:
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(getString(R.string.saved_high_score), newHighScore);
editor.commit();


从sharePreferences 文件中读数据.
可以调用getInt() 和getString().getInt()的第一个参数是key,第二个参数提供一个默认值,如果没有在sharePreferences中没有查到key对应的value,就返回这个默认值.
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
int defaultValue = getResources().getInteger(R.string.saved_high_score_default);
long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值