1

アクティビティを介して構成されたウィジェットがあり(を介して構成したくないpreference activity)、ウィジェットが追加されるたびに構成アクティビティを開くようにしたい。

ユーザーがウィジェットを構成すると、データはXMLで保存されます。

ウィジェットが最初に追加されたときにのみ機能することがわかりますonEnable()。私の質問は、ウィジェットが追加されるたびに呼び出される他の関数はありますか?

onUpdate()私はwidgetIdをXMLに追加することを検討し、XMLファイルにない新しいwidgetIdがあるかどうかを呼び出すたびにチェックしますが、それは非常に厄介だと思います。

誰かが私にここでいくつかのヒントを与えることができますか?

4

1 に答える 1

0

ユーザーがウィジェットの新しいインスタンスを追加するonUpdateonReceive、AppWidgetProviderのメソッドが呼び出されます。呼び出されたときに、アクティビティの開始を試みることができます。
編集
ユーザーがウィジェットの新しいインスタンスを追加したことを検出するには、メソッドが呼び出されたときに保存します(int[] appWidgetIdsこれはウィジェットインスタンスの一意のIDの配列です)(おそらくアプリの設定またはファイルに保存する必要があります...次に、onUpdateまたはonReceiveがagaainを呼び出したときに、それをチェックするかどうかを確認します。それがtrueの場合、ユーザーが新しいインスタンスを追加したことを確認できます。両方が等しい場合、ウィジェットの1つが正常に更新され、最新の長さが最新の長さよりも短い場合ユーザーがウィジェットインスタンスを削除したことを確認できます。で、最後に保存しますonUpdateonReceivelength of newest appWidgetIds is greater than length of latest appWidgetIdsonUpdateonReceiveappWidgetIds再びなど。

于 2012-07-30T08:13:19.093 に答える