Saving Data

来源:互联网 发布:淘宝裤子店 编辑:程序博客网 时间:2024/05/22 16:50
很多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
原创粉丝点击