Android数据访问(三)——SharedPreferences

本文详细介绍了Android中SharedPreferences的使用方法,包括其存储原理、如何获取SharedPreferences对象、以及如何进行数据的读写操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用SharedPreferences存取数据


官方文档

简介

  SharedPreferences是android.content.SharedPreferences包内的一个类,它主要是用来共享程序数据的。

  SharedPreferences是以键值对(key-value)的方式来存储数据,它可以存储boolean, float, int, long, 以及string这些基本的数据类型。

  SharedPreferences存储的数据是持久性的,一旦通过其存储数据,数据就一直保留着,即便是你的APP完全停止运行,从内存中完全退出,这些数据也会被保留下来,下一次你再进入APP时,从SharedPreferences中,你仍然可以读出上一次写入的数据。

  SharedPreference其实就是以xml的文件存储在Android系统的内部空间(internal storage)中,存储的路径是/data/data/package name/shared_prefs/ *.xml。如果手机有root的话,可以进到这个目录下去看一下存储的内容。

  由于是存储在内部存储空间中,SharedPreference文件会随着App的卸载而被删除,当然如果清楚程序的数据,也会清楚,这一点参考Android官网的Saving Data这篇文章。

获取SharedPreferences对象

  获取SharedPreferences对象有两种方法可以调用,事实上,在App中,可以使用任意的Context对象的下面两种方法获取到SharedPreferences的对象,不过,调用这两种方法会稍微有些不同。

  1. getSharedPreferences()
      这种方法用于APP中有多个SharedPreferences文件,通过名字来获取SharedPreferences对象;

  2. getPreferences()
      这种方法用于Activity中只有一个SharedPreferences文件时,因为只有一个,所以就不必提供名字。

实际应用时,第一种方法用的会更多。

向SharedPreferences中写数据

  向SharedPreferences中写数据需要下面的三个步骤,非常简单,不过,在实际应用时,一不注意就忘了调commit()方法,这样是保存不了数据的。

  1. 通过edit()方法获取SharedPreferences.Editor对象;
  2. 调用putXXX()方法,放值,(XXX为基本数据类型);
  3. 调用commit()方法提交放入的值。

下面的一小段代码显示了SharedPreferences的用法:

public class Calc extends Activity {
    public static final String PREFS_NAME = "MyPrefsFile";

    @Override
    protected void onCreate(Bundle state){
       super.onCreate(state);
       . . .

       // Restore preferences
       SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
       boolean silent = settings.getBoolean("silentMode", false);
       setSilent(silent);
    }

    @Override
    protected void onStop(){
       super.onStop();

      // We need an Editor object to make preference changes.
      // All objects are from android.context.Context
      SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
      SharedPreferences.Editor editor = settings.edit();
      editor.putBoolean("silentMode", mSilentMode);

      // Commit the edits!
      editor.commit();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值