欢迎来到天天文库
浏览记录
ID:19844883
大小:149.00 KB
页数:12页
时间:2018-10-06
《17-19-android开发技术讲义之保存数据》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Android开发技术讲义之保存数据大部分的android的app需要保存数据,即使在onPause()方法中也要保存app的状态信息以免用户进度丢失。大部分的比较好的app会需要保存用户设罝,并且一些app必须管理大量的文件和数据库信息。这里我们看看一些重要的数据存储方法,包括:•以键值对的方式将简单的数据类型保存在共享preference文件屮•保存基本的文件•使用SQLite管理数据库保存键值对集合如果你要保存一个相对较小的键值对集合,你应该使用SharedPreferences。一个SharedPreferences对象指向一个保存键值对的文件,并且提供了简革的方法来读写它们。每个Sh
2、aredPreferences文件都是由系统管理的,它可以是私有或者共享的。SharedPreferencesAPI仅仅提供丫读写键值对的功能,你不要和PreferenceAPI相混淆。后荞可以帮助你创建一个设置用户配置的UI(尽管也会使用SharedPreferences来保存app的设置)获取SharedPreferences的handle你口了以通过调用卜面的两个方法来创建或访问一个sharedpreference:•getSharedPreferencesO如果你需要通过名字区分多个共享preference文件,该方法的第一个参数就是名字,你可以在任何一个Context+来调用这个方法
3、。•getPreferencesQ当你的activity仅仅需要一个sharedpreference文件的吋候。因为这个方法会检索activity的默认共享preference文件,所以你不需要提供名字。例如,下面的代码会在一个^Fragment中执行,它存取通过资源字符串R.string.preference_file_key标示的井享preference文件,并使用private模式打开它,这吋该文件^只能由你的app存取。Contextcontext=getActivity();SharedPreferencessharedPref=context.getSharedPreference
4、s(getString(R.string.preference_file_key),Context.MODE_PRIVATE);当你命名你的井享preference文件的时候,应该用一个能够唯一标示它的名字,比如:"com.example.myapp.PREFERENCE_FILE_KEYn另外,如果你的activity只需要一个共享preference文件,你町以使用getPreferences()方法:SharedPreferencessharedPref=getActivity().getPreferences(Context.MODE_PRIVATE);注意:如果你在创建共享prefe
5、rence文件的时候使用MODE_WORLD_READABLE或者MODE_WORLD_WRITEABLE,任何其他知道该文件的app均可以存取你的数据。写入SharedPreferences为了写入井享preference文件,需要通过调用SharedPreferences的edit〔)方法来创建SharedPreferences.Editor<>通过类似putlnt(〕和putStringO方法来传速key和value。然后调用commitQ来保存该变化。例如:SharedPreferencessharedPref=getActivity().getPreferences(Context.
6、MODE一PRIVATE);SharedPreferences.Editoreditor=sharedPref.edit();editor.putInt(getString(R.string.saved—high_score),newHighScore);editor.commit();从共享Preference文件中读取数据为从一个共享preference文件中提取值,需要调用getlntQ和getString〔)方法,给这些方法传递你需要获取值的key,如果没冇对应key值,会返冋一个默认值。SharedPreferencessharedPref=getActivity().getPref
7、erences(Context.MODE—PRIVATE);intdefaultValue=getResources().getlnteger(R.string•saved_high_score_default);longhighScore=sharedPref•getlnt(getString(R.string.saved一high一score),defaultValue);保存文件androi
此文档下载收益归作者所有