2012-07-31 96 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);