我只有一个班,我需要访问SharedPreferences:如何在不传递上下文引用的情况下从类中的静态方法访问Android SharedPreferences?
public class MyUtils {
public static String packageMe(Object input){
// do stuff here
// need SharedPreferences here
}
public static Object unpackageMe(String input){
// do stuff here
// need SharedPreferences here
}
}
我尝试这样做:
public class MyUtils extends Activity
但是,你知道,我不能从静态方法访问SharedPreferences。
我想到的背景下,传递到静态方法,但延长的班列四,我将需要修改的数量和类别已经扩大的AsyncTask:
public class SomeClass01 extends AsyncTask {
@Override
protected Object doInBackground(Object[] params){
MyUtils.packageMe(abc_123_object);
// do stuff here
}
}
所以,我认为也许我可以将这种情况传递给这四个班级。然而,有几十个类需要修改,使用这四个类,然后使用这个类。
public class SomeTopClass extends FragmentActivity implements x, y, z {
new SomeClass01.execute(abc_123_object);
// do stuff here
}
我不知道我是否想传递深入我的代码的上下文引用。
我在StackOverflow上看到了关于在我的abc_123_object模型中引用SharedPreferences的引用,但也有相当多的对象使用(除了abc_123_object),我不想让这么多类。
那么,有没有办法让我做到这一点,而无需修改几十个类,并在我的代码周围传递上下文引用,或者我卡住了?
感谢
看看的:https://stackoverflow.com/a/5114361/461810 – Dusan
@Dusan哇...这是非常甜蜜!这是“安全”吗? – Brian
从我的经验来看,是的,这是安全的。 在一些应用中使用这种方法 - 异步任务,后台线程,全部使用相同的静态上下文,没有问题。 – Dusan