2009-12-30 45 views
1

我的應用程序有1 * 4圖標大小小部件。 當用戶嘗試添加我提供的配置屏幕的小部件時。並且收集了一些數據 - 它由服務器驗證 - 它以appWidgetID作爲關鍵字添加到本地數據庫 - 一切都很好。是AppWidgetProvider通知如果由於主屏幕上沒有足夠的空間而添加小部件失敗

當用戶點擊保存時,如果沒有足夠的空間,他會得到一個禮貌的敬酒 - 「在這個主屏幕上沒有更多的空間」。

現在我的問題是,應用程序不知道這一點。應用程序仍然假定小部件已創建,並且在某段時間後等待廣播更新小部件。

任何人都可以告訴我,如果我可以通過廣播或回調或任何可能的方法來確定小部件是否未成功創建,以便我可以將該數據庫中的該記錄標記爲已刪除。

或者更好,如果我可以通過一些神奇的忍者代碼事先知道可用的空間。

我的整個應用程序設計都因此問題而受到干擾。 請幫忙。

回答

0

您是否檢查過您的AppWidgetProvider中的onDeleted()在這種情況下被調用?我沒有嘗試過,但我希望這會起作用。

如果沒有被調用,您可以嘗試onDisabled(),但這隻有當主屏幕上沒有其他應用程序小部件副本時纔可以使用。

0

我認爲這是當前操作系統中的一個bug,如果屏幕上沒有足夠的空間存放widget,onDeleted()方法永遠不會被調用。我知道我已經看到這至少通過Android版本1.5。沒有我知道的修復。

2

這已被固定在1.6或2.0中。

+0

啊,我沒有意識到修復出了問題。我仍然嘗試編寫SDK級別3以支持最大的受衆羣體,這也解釋了我仍然看到它的原因。 – 2009-12-31 02:07:20

相關問題