2011-04-21 85 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