Android 單例模式與SharedPreferences一起使用

來源:互聯網
上載者:User

標籤: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一起使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.