我知道,我知道,我会被激怒,扔进地狱的余烬里。
使用环绕设置的单例类。像这样:SharedPreference
public class PrefSingleton{
private static PrefSingleton mInstance;
private Context mContext;
//
private SharedPreferences mMyPreferences;
private PrefSingleton(){ }
public static PrefSingleton getInstance(){
if (mInstance == null) mInstance = new PrefSingleton();
return mInstance;
}
public void Initialize(Context ctxt){
mContext = ctxt;
//
mMyPreferences = PreferenceManager.getDefaultSharedPreferences(mContext);
}
}
并围绕您的示例在问题中表示的内容创建包装函数,例如,
PrefSingleton.getInstance().writePreference("exampleSetting", "off");
实现可以是这样的:
// Within Singleton class
public void writePreference(String key, String value){
Editor e = mMyPreference.edit();
e.putString(key, value);
e.commit();
}
从您的第一个活动开始,以这种方式激活单例类,如下所示:
PrefSingleton.getInstance().Initialize(getApplicationContext());
我冒着落票的风险的原因是,使用全局静态类可能是一个坏主意,并且违背了编程基础的做法。但话虽如此,撇开挑剔不谈,它将确保只有类的唯一对象可以存在并且无论代码处于什么活动中都可以访问。PrefSingleton