Android SharedPreferences

最是人间留不住,朱颜辞镜花辞树。这篇文章主要讲述Android SharedPreferences相关的知识,希望能为你提供帮助。
在日常的开发工作中,经常需要将一些少量配置信息(机器或是设备)持久化的保存在本地。这时候使用数据库就会闲的很笨重,而且确实如此。SharedPreferences作为一个很轻量级存储类是比较好的选择
本篇就此简单SharedPreferences的应用。
SharedPreferences简介【Android SharedPreferences】SharedPreferences是用来存储一些简单的配置文件的机制,SharedPreferences使用Map数据结构来存储数据(key-value)。采用XML格式将数据存储到设备中。

< ?xml version=‘1.0‘ encoding=‘utf-8‘ standalone=‘yes‘ ?> < map> < string name="name"> chenjy< /string> < int name="age" value="https://www.songbingjia.com/android/18" /> < /map>

SharedPreferences使用获取SharedPreferences有两种方式:
1.1 调用Context对象的getSharedPreferences()方法,可以被用一个应用程序下的其他组件共享。
2.2 调用Activity对象的getPreferences()方法,该对象只能在Activity中使用。
SharedPreferences的四种操作模式:
Context.MODE_PRIVATE:默认的操作模式,代表改文件为私有数据,只能被应用本身访问。该模式下,写入的文件会覆盖原文件。
Context.MODE_APPEND:改模式会检查文件是否存在,如果存在就往文件追加内容否则就创建新文件。
Context.MODE_WORLD_READABLE:表示当前文件可以被其他应用读取。
Context.MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。
SharedPreferences源码SharedPreferences通过SharedPreferences.Editor来存储数据
  • SharedPreferences.Editor.putIntSharedPreferences.Editor.putStringkey value值。
  • SharedPreferences.Editor.remove 清除指定key的字段。
  • SharedPreferences.Editor.clear 清空所有数据。
import android.content.Context; import android.content.SharedPreferences; import android.preference.PreferenceManager; public class EasySharePreference {private static SharedPreferences sharedPreferences = null; private static SharedPreferences.Editor sp_editor = null; public static void init(Context c) { if (sharedPreferences == null) { sharedPreferences = PreferenceManager.getDefaultSharedPreferences(c); } if (sp_editor == null) { sp_editor = sharedPreferences.edit(); } }public static SharedPreferences getPrefInstance() { return sharedPreferences; }public static SharedPreferences.Editor getEditorInstance() { return sp_editor; }// 获取名为token的`SharedPreferences` public static String getToken() { String token = sharedPreferences.getString("token", "").trim().replace(" ", ""); return token.replace(""", ""); }// 存储名为token的`SharedPreferences` public static void saveToken(String token) { sp_editor.putString("token", token.trim().replace(" ", "")).commit(); }}

MainActivity:
package com.example.chenjy.chenjy; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; import utils.EasySharePreference; public class MainActivity extends Activity {private TextView tv_token; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); EasySharePreference.init(getApplicationContext()); initView(); }private void initView(){tv_token = (TextView)findViewById(R.id.tv_token); EasySharePreference.saveToken("chenjy"); tv_token.setText(EasySharePreference.getToken()); }}

Android SharedPreferences

文章图片

SharedPreferences使用tips
  • 存储位置:文件存储在Android 目录下 datadata程序包名shared_prefs程序包名_preferences.xml
  • 存储大小:SharedPreferences 会在创建的时候把整个文件加载进内存,而且很持久的存在。如果SharedPreferences过大 线程阻塞、卡顿、GC都会有的。


    推荐阅读