標籤:android 執行個體
百度上很多關於單例模式的解釋,例如懶漢模式,餓漢模式等等之類,也有說單例模式與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一起使用