2012-03-19 31 views
4

我有一些應用程序,其中一些AppWidget s。我在數據庫中存儲有關每個小部件的一些信息,包括它的appWidgetId - 我需要這些信息來正確更新每個小部件。問題是設備重新啓動後,我無法再尋址這些appWidgetId了,因爲它們似乎改變了它們的值。我怎樣才能克服這個問題?提前致謝。AppWidget ID的使用期限

+0

爲什麼你需要堅持ID?你在用什麼?粘貼相關的代碼。 – 2012-03-19 14:44:55

+0

@Dheeraj,appWidgetId是數據庫表格行的關鍵字,它存儲從Internet上獲取信息所需的信息,適用於此單個小部件。你需要看什麼樣的代碼?這有助於解決問題嗎? – Egor 2012-03-19 14:56:33

+0

@Dheeraj,我的應用程序顯示不同國家對的貨幣匯率。每個小部件都有與之綁定的國家信息,並且有一個自動更新系統,需要這些信息來更新每個小部件。有什麼辦法可以解決這個問題嗎? – Egor 2012-03-19 19:10:04

回答

4

它看起來像只有在某些設備上appwidget ID重新啓動(由於錯誤)的變化。見this thread

我看了一下Android源代碼。 appwidget ID的確保存在/data/system/appwidgets.xml的文件中。也許你的設備有上面提到的線程中的錯誤。

我想不出合適的解決辦法。

-1

新的appWidgetId在R.java中生成,每次運行應用程序而不是從R.java存儲標識時,您可以在數據庫中存儲標識android:id =「@ + id/btn_add」。

+1

我不是在談論按鈕的ID,我在談論AppWidget ID。 – Egor 2012-03-19 14:54:51

1

我認爲Dheeraj是對的。我也是Android Widgets的開發人員,並執行相同的操作:通過重新記錄WidgetId保存每個Widget的設置。這完美地運行在我所知道的所有設備上。在我知道的所有設備上重新啓動之後,ID不會更改。你確定你的觀察嗎?

+0

它似乎隨機發生一次或兩次,這讓我認爲appWidgetIds在重新啓動時以某種方式失效。今天我已經修復了一些數據庫問題,可能它們是真正的問題。 – Egor 2012-03-20 10:48:53

+0

@Egor所以你認爲有問題的設備其實很好,ID保持不變? – 2013-04-13 23:08:08