本文共 2314 字,大约阅读时间需要 7 分钟。
数据持久化就是指将那些内存中的瞬时数据保存到持久化设备中(如手机文件、数据库等),当关机,停电后,数据不丢失。 Android 系统中主要提供了三种方式用于实现数据持久化功能,分别是: 1、文件存储 2、SharedPreference 存储 3、数据库存储。 今天我们学习第二种存储方式:SharedPreferences存储。 SharedPreferences 是使用键值对的方式来存储数据的,使用 SharedPreferences来进行数据持久化要比使用文件方便很多。
一、首先需要获取到SharedPreferences对象。
Android中主要提供了三种方法用于得到 SharedPreferences 对象,分别是: 1. Context 类中的 getSharedPreferences(String name, int mode)方法 a、第一个参数name:用于指定 SharedPreferences文件的名称,如果指定的文件不存在则会创建一个, SharedPreferences 文件都是存放在/data/data/<package name>/shared_prefs/目录下的。 b、第二个参数mode:用于指定操作模式,主要有两种模式可以选择, 1)MODE_PRIVATE :默认的操作模式,和直接传入 0 效果是相同的,表示只有当前的应用程序才可以对这个SharedPreferences文件进行读写 2)MODE_MULTI_PROCESS;则一般是用于会有多个进程中对同一个 SharedPreferences文件进行读写的情况。 2. Activity 类中的 getPreferences(int mode)方法 它只接收一个参数mode(操作模式,同上),使用这个方法时会自动将当前活动的类名作为 SharedPreferences 的文件名。 3. PreferenceManager 类中的 getDefaultSharedPreferences()方法 静态方法,接收一个 Context 参数,并自动使用当前应用程序的包名作为前缀来命名 SharedPreferences 文件。二、得到了 SharedPreferences对象之后, 就可以开始向 SharedPreferences文件中存储数据了。
activity_main.xml中的代码:
MainActivity中的代码:
package com.demo.sharedprefrececesdemo;import android.app.Activity;import android.content.SharedPreferences;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity { private Button saveData; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); saveData = (Button) findViewById(R.id.save_data); saveData.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { /** * 1、获取SharedPreferences.Editor 对象 */ SharedPreferences.Editor editor = getSharedPreferences("data", MODE_PRIVATE).edit(); /** * 2、向 SharedPreferences.Editor 对象中添加数据 */ editor.putString("name", "张三"); editor.putInt("age", 10); editor.putBoolean("childen", true); /** * 3、调用 commit()方法将添加的数据提交,完成数据存储操作 */ editor.commit(); } }); }}
结果:
1、保存前:
2、保存数据后:
3、保存的数据:
项目下载:
SharedPreferences 存储中的查看保存完整功能请参见: