博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android数据持久化之二:SharedPreferences 存储(上)
阅读量:4290 次
发布时间:2019-05-27

本文共 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文件中存储数据了。

三、具体实现共分三步实现

1. 调用 SharedPreferences 对象的 edit()方法来获取一个 SharedPreferences.Editor 对象。
2. 向 SharedPreferences.Editor 对象中添加数据,比如添加一个布尔型数据就使用putBoolean 方法,添加一个字符串则使用 putString()方法,以此类推。
3. 调用 commit()方法将添加的数据提交,从而完成数据存储操作。

实战演练:

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 存储中的查看保存完整功能请参见:

你可能感兴趣的文章
单链表是否有环的问题
查看>>
判断两个链表是否相交并找出交点
查看>>
归并排序
查看>>
STL常见问题
查看>>
time_wait和close_wait状态
查看>>
STL中vector、list、deque和map的区别
查看>>
Linux下多线程查看工具(pstree、ps、pstack)
查看>>
PID PPID LWP NLWP
查看>>
查看线程CPU占用情况
查看>>
查看个线程的CPU 内存占用
查看>>
Fiddler 教程
查看>>
apache 设置用户注意事项
查看>>
svn中设置文件夹链接
查看>>
find ./ -name "*.cgi" |xargs -i cp "{}" ./cgi-bin/
查看>>
svn st | awk '{if ( $1 == "?") { print $2}}' | xargs svn add
查看>>
mysql事务处理用法与实例详解
查看>>
利用iptables来配置linux禁止所有端口登陆和开放指定端口
查看>>
Python模块——struct
查看>>
mysql中select * for update
查看>>
linux vmstat 1 ,watch , pmap -p,
查看>>