2012-07-30 69 views
1

我有一個通過活動配置的小部件(我不想通過preference activity執行此操作),並且想要打開每個配置活動時間一個小部件被添加。添加小部件時打開活動(不止一次)

一旦用戶配置了小部件,數據就保存在XML中。

我看到onEnable()只在第一次添加小部件時起作用,我的問題是:是否有任何其他函數在每次添加小部件時都調用?

我曾考慮過將widgetId添加到XML中,並在每次調用onUpdate()時檢查是否存在不在XML文件中的新widgetid,但我認爲這非常混亂。

任何人都可以給我一些提示嗎?

回答

0

當用戶添加小部件的新實例時,將調用您的AppWidgetProvider的方法onUpdateonReceive。您可以嘗試在調用這些方法時啓動Activity。
編輯
要檢測用戶添加小工具的新實例,你會救int[] appWidgetIds(這是你的控件實例的唯一ID的數組)時onUpdateonReceive方法調用(可能是您要保存然後當onUpdate或onReceive調用agaain時,請檢查length of newest appWidgetIds is greater than length of latest appWidgetIds或否?如果它是真的,那麼您可以確定該用戶添加了新實例,如果兩者相同,則您的某個小部件的一個正常更新如果最新的長度小於最新的長度,你可以確定用戶刪除了你的小部件實例。在onUpdateonReceive,最後再保存appWidgetIds等。

+0

是的,但每次小部件更新時(每30分鐘)都會調用「OnUpdate」,而我只想在用戶添加新小部件時啓動活動。 – luanjot 2012-07-30 08:36:32

+0

@luanjot請參閱我的編輯。 – hasanghaforian 2012-07-30 09:09:25

+0

好吧,我認爲如果一個小部件被刪除並再次添加並刪除並再次添加...小部件ID將永遠不會再出現,對吧? – luanjot 2012-07-30 09:16:14