2011-09-07 93 views
16

我想我的後臺服務中訪問SharedPreference我使用PreferenceManager.getDefaultSharedPreferences()但它給nullpoint異常要從服務訪問共享SharedPreference在android系統

感謝

+0

告訴我你的代碼..... 比我能解釋其中的問題來了...... –

+1

是的,我不認爲如果你有從未承認它的記錄,許多人都會急於提供幫助。 –

回答

31

你必須使用這樣的上下文:

Context ctx = getApplicationContext(); 
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); 
5

試試這個:

SharedPreference pref = getSharedPreferences(PrefName, 0); 
3

如果您有crea泰德SharedPreferences,如:

private static final String PREFS_NAME = "UserData"; 
private static final String PREFS_VALUE1 = "value1"; 

然後使用此:

SharedPreferences preferences = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE); 
value1 = preferences.getString(PREFS_VALUE1, "default_no"); 
+0

比這更好的選擇是創建一個單例偏好類來存儲和檢索來自SharedPreferences的值。 – Harpreet