Android专门保存我的应用程序的首选项,但可从所有类访问

时间:2014-11-01 12:45:55

标签: java android sharedpreferences saving-data

我想保存一个首选项,以便我可以从我的应用程序中的所有类访问它。但它不应该从我的应用程序外部访问,因为它将包含用户登录数据。

在Android文档中,我理解MODE_PRIVATE应该这样做。但是如果我使用MODE_PRIVATE,我只能从我创建它的类中访问首选项。

Class1.java:

....
SharedPreferences prefs = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editPrefs = prefs.edit();
editPrefs.putString("myPref", "myValue");
editPrefs.commit();
...

Class2.java:

...
SharedPreferences prefs = getPreferences(MODE_PRIVATE);
String myString = prefs.getString("myPref", " ");
...

如果我在创建它的同一个类中调用getString,那么它会返回myValue(即使在关闭应用程序之后,又不再重新添加)。

如果我在同一个应用中的另一个类中调用getString,则会返回“”。

谢谢!

1 个答案:

答案 0 :(得分:0)

试试这个:

PreferenceManager.getDefaultSharedPreferences(getApplicationContext());

有关文档,请参阅:http://developer.android.com/reference/android/preference/PreferenceManager.html#getDefaultSharedPreferences(android.content.Context)