2011-04-21 70 views
0

我有我從服務調用的這段代碼。從SharedPreferences獲取價值的問題

prefs = getSharedPreferences(homeConfigure.APP_PREF_NAME, Context.MODE_PRIVATE); 
    city = prefs.getString(CITY + appWidgetId,"nothing"); 

它返回存儲的正確值。但隨後通過服務類中的AlarmManager調用該服務將返回值「Nothing」。

什麼可能是錯的?

我保存在homeConfigure活動這樣的:

city = cityText.getText().toString();  
Editor editor = prefs.edit(); 
editor.putString(CITY + appWidgetId,city); 
editor.commit(); 

並從意圖在OnCreate(配置類的插件首先加入時獲得appwidget):

appWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID,AppWidgetManager.INVALID_APPWIDGET_ID); 

回答

0

嘗試使用getDefaultPreferences(上下文)來代替。

+0

它似乎沒有工作。我做了prefs = preferenceManager.getDefaultSharedPreference(homeConfigure.self)。自我就是自我= this;在homeConfigure類中。但它似乎並不奏效。 – Rexx 2011-04-21 17:29:38

+1

@Rexx你如何初始化你的appWidgetId和CITY? – Guy 2011-04-21 17:49:28

+0

不確定你的意思,但正如我所說,它來自配置活動。我的appWidgetId(ApPWidgetManager.Extra_APPWIDGET_ID)是從intent獲得的,而CITY是來自EditText。我已經添加了如何將它們保存在 – Rexx 2011-04-21 19:43:50