SharedPreferences介绍
SharedPreferences是Android平台上用于存储轻量级持久化数据的一种机制。它基于键值对的存储方式,可以用来保存简单的配置信息、用户偏好设置等数据。SharedPreferences存储的数据是以XML文件的形式保存在应用的私有目录中。SharedPreferences存储的数据在应用关闭后仍然可以保持,直到应用被卸载或者数据被清除。
使用SharedPreferences:
SharedPreferences sharedPreferences = context.getSharedPreferences("preference_name", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("key", "value");
editor.apply(); // 或者使用editor.commit();
String value = sharedPreferences.getString("key", "default_value");
在Android中,每个应用都有自己的SharedPreferences文件,其他应用无法直接访问。通过SharedPreferences对象,可以对这个文件进行读写操作。通常情况下,SharedPreferences用于存储一些简单的数据,如用户名、密码、设置项等。
下面是一个简单的示例:
// 写入数据
SharedPreferences.Editor editor = getSharedPreferences("my_prefs", MODE_PRIVATE).edit();
editor.putString("username", "user123");
editor.putInt("score", 100);
editor.apply();
// 读取数据
SharedPreferences prefs = getSharedPreferences("my_prefs", MODE_PRIVATE);
String username = prefs.getString("username", "default");
int score = prefs.getInt("score", 0);
在上面的示例中,我们首先通过getSharedPreferences方法获取SharedPreferences对象,然后通过Editor对象进行数据的写入操作,最后通过SharedPreferences对象进行数据的读取操作。
SharedPreferences提供了一种简单方便的方式来存储和读取应用的配置信息和用户偏好设置。不适合存储大量的复杂数据结构。
commit与apply区别
在使用SharedPreferences时,可以使用commit()或者apply()来提交数据的修改。
- commit(): 将数据修改提交到SharedPreferences,并且会阻塞当前线程直到写入操作完成。返回一个boolean值,表示提交是否成功。
- apply(): 将数据修改提交到SharedPreferences,但是不会阻塞当前线程。它会将修改的数据放入内存中的一个队列中,并在合适的时机异步写入到磁盘中。apply()方法没有返回值。
一般来说,推荐使用apply()方法来提交SharedPreferences的修改,因为它不会阻塞当前线程,而且在大多数情况下,数据的写入操作都是非常快的。
使用注意事项
在使用SharedPreference时,需要根据实际需求和数据特性来合理选择存储方案,并且注意数据的安全性和合理的生命周期管理。