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;
	}

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

时间: 2024-08-11 01:33:43

Android 单例模式与SharedPreferences一起使用的相关文章

【Mark】Android应用开发SharedPreferences存储数据的使用方法

Android应用开发SharedPreferences存储数据的使用方法 SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的就是一个key-value(键值对)SharedPreferences常用来存储一些轻量级的数据. 1.使用SharedPreferences保存数据方法如下: //实例化SharedPreferences对象(第一步) SharedPreferences mySharedPreferences=

Android中利用SharedPreferences保存信息

package com.example.sharepreferen; import android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.vi

Android 单例模式探讨

Singleton模式可以是很简单的,它的全部只需要一个类就可以完成(看看这章可怜的UML图).但是如果在"对象创建的次数以及何时被创建"这两点上较真起来,Singleton模式可以相当的复杂,比头五种模式加起来还复杂,譬如涉及到DCL双锁检测(double checked locking)的讨论.涉及到多个类加载器(ClassLoader)协同时.涉及到跨JVM(集群.远程EJB等)时.涉及到单例对象被销毁后重建等. 目的: 希望对象只创建一个实例,并且提供一个全局的访问点. 图6.

wemall app商城源码Android数据的SharedPreferences储存方式

wemall-mobile是基于WeMall的Android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享wemall app商城源码Android数据的SharedPreferences储存方式,供技术员参考学习.        SharedPreferences:除了SQLite数据库外,SharedPreferences也是一种轻型的数据储存方式,它的本质是基于XML文件存储key-value键值对数据,通常用来储存一些简单的配置信息.Sha

Android数据储存——SharedPreferences储存

SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息.其存储位置在/data/data/<包名>/shared_prefs目录下. 读取SharedPreference 1.获取SharedPreference对象 /* * name 打开的SharedPreferences文件名称(不需要.xml后缀) * mode 打开的SharedPreferences模式 */ SharedPrefere

Android之使用SharedPreferences保存用户偏好参数

在Android应用中,我们常需要记录用户设置的一些偏好参数,,此时我们就需要用SharedPreferences和Editor将这些信息保存下来,在下次登录时读取. SharedPreferences保存的数据主要类似于配置信息格式的数据,因此它保存数据的形式为key-value对,下面我们来看下实例代码. 首先是界面布局,比较简单,就是一个普通的登陆界面. 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/r

android本地存储SharedPreferences

SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的就是一个key-value(键值对)SharedPreferences常用来存储一些轻量级的数据 //实例化SharedPreferences对象(第一步) SharedPreferences mySharedPreferences= getSharedPreferences("test", Activity.MODE_PRIVATE); //实例化SharedP

[Android]数据篇 --- SharedPreferences

转载请标注:转载于http://www.cnblogs.com/Liuyt-61/p/6637515.html --------------------------------------------------------------- Android数据的四种存储方式: 1.SharedPreferences 2.SQLite 3.Content Provider 4.File ----------------------分割线--------------------------------

android开发中SharedPreferences用法详解(含源代码和运行结果截图)

在Android应用程序开发中,经常需要保存一些类似于配置信息的简单类型数据,比如游戏玩家的积分.是否开启音效等.SharedPreferences类为我们保存.读取这些数据提供了便利. SharedPreferences接口提供以下常用方法来访问SharedPreferences对象中的key-value对: boolean contains(String key):判断SharedPreferences对象是否包含键值为key的数据. boolean getXxx(String key, x