我尝试进行自定义会话,但我遇到了正常问题,但我没有看到错误:
在我的班级主要:
session.getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
同样在我的班级课程中有:
public SharedPreferences getSharedPreferences(String mypreferences2, int modePrivate){
sharedpreferences = getSharedPreferences(mypreferences2,
modePrivate);
return this.sharedpreferences;
}
我明白了,为什么?
03-12 00:22:09.104: E/AndroidRuntime(7595): FATAL EXCEPTION: main
03-12 00:22:09.104: E/AndroidRuntime(7595): java.lang.StackOverflowError
03-12 00:22:09.104: E/AndroidRuntime(7595): at com.example.support.Session.getSharedPreferences(Session.java:41)
03-12 00:22:09.104: E/AndroidRuntime(7595): at com.example.support.Session.getSharedPreferences(Session.java:41)
03-12 00:22:09.104: E/AndroidRuntime(7595): at com.example.support.Session.getSharedPreferences(Session.java:41)
03-12 00:22:09.104: E/AndroidRuntime(7595): at com.example.support.Session.getSharedPreferences(Session.java:41)
等
答案 0 :(得分:1)
您获得StackOverflowError
的原因是因为您的方法无限制地以递归方式调用自己。如果您的班级Main
是Activity
的子类,则只需要致电:
this.getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
如果确实需要来自另一个类的共享首选项中的信息,建议您在Activity
中检索它,然后通过构造函数,公共方法等将信息传递给类。