2012-07-31 72 views
0

我需要以下情况的帮助。我有配置活动的小部件。在这个活动中有一些微调的值,这会影响小部件的外观(只有一个TextView中的文本)。目前,我在配置活动中将AlarmManager设置为小部件更新(服务)并修改TextView。这工作正常,但当我重新启动手机,警报不再设置,我应该再次设置它。我无法做到这一点,因为Configure活动的设置丢失了。从配置活动获取设置

有解决方案 - 将AppWidgetID与小部件设置保存到数据库,但我认为,这不是最好的解决方案。一个问题是,在ConfigureActivity的onCreate方法之前调用onUpdate方法AppWidgetProvider

简而言之,我需要从配置活动中获取一些设置,将它传递给AppWidgetProvider并更新小部件。

在此先感谢

回答

0

听起来像是SharedPreferences工作。使用您的配置活动来设置首选项值并从您的小部件中读取它们。使用PreferenceManager.getDefaultSharedPreferences(Context)访问共享首选项。

+0

SharedPreferences是我第一次知道如何解决它。保存是好的,但我怎么能说AppWidgetProvider与特定的AppWidgetId小部件必须更新? – skywall 2012-07-31 15:41:48

+0

@skywall - 从配置活动更新小部件的机制在这里描述(http://developer.android.com/guide/topics/appwidgets/index.html#UpdatingFromTheConfiguration)。您从启动配置活动的意图中检索小部件ID。 – 2012-07-31 21:19:59

+0

谢谢,最后我使用了AppWidgetProvider的SharedPreferences和onReceive方法。 – skywall 2012-08-02 11:14:03

0

怎么样使用shared preferences? 如果您需要保存一些与您的应用程序相关的首选项设置,则可以使用此解决方案。

事情是这样的:

SharedPreferences sharedPreference = getSharedPreferences(PREFS_NAME, 0); 
String prefName = sharedPreference.getString(YOUR_PREF_NAME, DEFAULT_VALUE);