Android 单例模式与SharedPreferences一起使用

百度上很多关于单例模式的解释,例如懒汉模式,饿汉模式等等之类,也有说单例模式与SharedPreferences一起使用,,因为SharedPreferences暂不支持多线程访问。可以查看我这篇文章Android sharedpreferences轻量级存储中介绍SharedPreferences。

下面贴代码看看单例模式与SharedPreferences一起使用。

import android.content.Context;import android.content.ContextWrapper;import android.content.SharedPreferences;import android.content.SharedPreferences.Editor;public class ProgramConfigManage {// 单例模式类对象private ContextWrapper mWrapper = null;private static ProgramConfigManage m_ProgramConfig = null;private SharedPreferences mPreferences = null;// 将配置参数定义为成员全局变量private String mstrNetworkIP;private int mnNetworkPort;private String mstrNetworkUserName; private String mstrNetworkPassword; private String mstrNetworkUpdate;// 单例模式获取实例public static ProgramConfigManage GetInstance(Context base) {if (m_ProgramConfig == null) {m_ProgramConfig = new ProgramConfigManage(base);// 为了提高速度,在这 里读取配置m_ProgramConfig.mstrNetworkIP = m_ProgramConfig.mPreferences.getString("Config_NetworkIP", "");m_ProgramConfig.mnNetworkPort = m_ProgramConfig.mPreferences.getInt("Config_NetworkPort", 0);m_ProgramConfig.mstrNetworkUserName = m_ProgramConfig.mPreferences.getString("Config_NetworkUserName", "");m_ProgramConfig.mstrNetworkPassword = m_ProgramConfig.mPreferences.getString("Config_NetworkPassword", "");m_ProgramConfig.mstrNetworkUpdate = m_ProgramConfig.mPreferences.getString("Config_NetworkUpdate", "");}return m_ProgramConfig;}// 配置getSharedPreferencespublic ProgramConfigManage(Context base) {// super(base);mWrapper = new ContextWrapper(base);mPreferences = mWrapper.getSharedPreferences("Perference",ContextWrapper.MODE_PRIVATE);}// 设置public void setNetworkState(String strNetworkIP, int nNetworkPort,String strNetworkUserName, String strNetworkPassword) {Editor editor = mPreferences.edit();editor.putString("Config_NetworkIP", strNetworkIP);editor.putInt("Config_NetworkPort", nNetworkPort);editor.putString("Config_NetworkUserName", strNetworkUserName);editor.putString("Config_NetworkPassword", strNetworkPassword);editor.commit();mstrNetworkIP = strNetworkIP;mnNetworkPort = nNetworkPort;mstrNetworkUserName = strNetworkUserName;mstrNetworkPassword = strNetworkPassword;}//设置public void setNetworkUpdateMessage(String strUpdate) {Editor editor = mPreferences.edit();editor.putString("Config_NetworkUpdate", strUpdate);editor.commit();mstrNetworkUpdate=strUpdate;}public String getNetworkIP() {return mstrNetworkIP;}public int getNetworkPort() {return mnNetworkPort;}public String getNetworkUserName() {return mstrNetworkUserName;}public String getNetwordPassword() {return mstrNetworkPassword;}public String getNetworkUpdate() {return mstrNetworkUpdate;}}

欢迎大家交流更多的SharedPreferences以及单例模式的用法.

强者能同命运的风暴抗争。

Android 单例模式与SharedPreferences一起使用

相关文章:

你感兴趣的文章:

标签云: