android 数据存储(保留)

Android提供的数据持久化存储方式:

1.Shared Preferences:以Key-Value形式存储数据

2.Internal Storage:数据文件存储在内存卡

3.External Storage:数据存储在外部设备,如SD卡等

4.SQLite Databases:SQLite存储方式

5.Network Connection:通过WebService等网络通信方式存储数据。

 

1.SharedPreferences

Android 平台为我们提供了一个SharedPreferences 类,它是一个轻量级的存储类,特别适合用于保存软件配置参数,例如应用的默认皮肤设置、记录用户上次登录信息等。数据的存储格式为Key-Value。使用SharedPreferences 保存数据,其背后是用xml文件存放数据,文件存放在/data/data/<package name>/shared_prefs 目录下。

 使用SharedPreferences保存key-value对:

  (1)使用getSharedPreferences方法获得SharedPreferences对象,其中存储key-value的文件的名称由getSharedPreferences方法的第一个参数指定。

1  SharedPreferences mySharedPreferences=getSharedPreferences("test", Activity.MODE_PRIVATE);
//"test"指定存储文件的文件名,Activity.MODE_PRIVATE设置访问权限

  注1:test为存储key-value的文件的名(可以任取,如果想要与本应用程序的其他组件共享此配置文件,可以用这个名字来检索到这个配置文件,在这里要特别注意,因为在Android 中已经确定了SharedPreferences 是以xml形式保存,所以,在填写文件名参数时,不要给定“.xml”后缀,android会自动添加。它会直接被保存在/data/data/<package name>/shared_prefs路径下)

  注2:SharedPreferences的四种操作模式:

     Activity.MODE_PRIVATE,//默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中,可以使用Activity.MODE_APPEND  
Activity.MODE_WORLD_READABLE,//表示当前文件可以被其他应用读取,
Activity.MODE_WORLD_WRITEABLE,//表示当前文件可以被其他应用写入;
//如果希望文件被其他应用读和写,可以传入:Activity.MODE_WORLD_READABLE+Activity.MODE_WORLD_WRITEABLE
Activity.MODE_APPEND//该模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件

  (2)使用SharedPreferences接口的edit获得SharedPreferences.Editor对象。

1 SharedPreferences.Editor editor = mySharedPreferences.edit();

  (3)通过SharedPreferences.Editor接口的putXXX方法保存key-value对。其中XXX表示不同的数据类型。例如:字符串类型的value需要用putString方法。

editor.putString(key, value);

  注: Editor putString(String key, String value);

     Editor putInt(String key, int value);等

 (4)通过SharedPreferences.Editor接口的commit方法保存key-value对。commit方法相当于数据库事务中的提交(commit)操作。

editor.commit();

 使用SharedPreferences获得key对于的value:

 (1)在读取SharedPreferences数据前要实例化出一个SharedPreferences对象:

1  SharedPreferences sharedPreferences= getSharedPreferences("test", Activity.MODE_PRIVATE);

 (2)使用SharedPreferences的getXXX方法获得value;

1  String str = sharedPreferences.getString(key,  "");

 测试函数体如下:

//保存value  例: editor.putString("habit", "sleep");
public void sharedsave(String key, String value){
        //实例化SharedPreferences对象(第一步)
        SharedPreferences mySharedPreferences = getSharedPreferences("test",  Activity.MODE_PRIVATE);
    //实例化SharedPreferences.Editor对象(第二步)
        SharedPreferences.Editor editor = mySharedPreferences.edit();
    //用putString的方法保存数据
        editor.putString(key, value);
    //提交当前数据
        editor.commit();
    }

//获取value的值
    public void display(){
        //同样,在读取SharedPreferences数据前要实例化出一个SharedPreferences对象
        SharedPreferences sharedPreferences= getSharedPreferences("test",  Activity.MODE_PRIVATE);
        // 使用getString方法获得value,注意第2个参数是value的默认值
        String habit = sharedPreferences.getString("habit", "");
        //显示value的值
        setSafetime_ed.setText(habit);
    }

 

 

 

 

 

 

它是采用键值对的形式保存参数。当你需要获得某个参数值时,按照参数的键索引即可。

转载于:https://www.cnblogs.com/poppybloom/p/6085011.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值