android单例模式应用,Android 单例模式与SharedPreferences一起使用

百度上很多关于单例模式的解释,例如懒汉模式,饿汉模式等等之类,也有说单例模式与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;

}

// 配置getSharedPreferences

public 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以及单例模式的用法.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值