2011-07-07 25 views
3

現在、私のアプリケーション用のアプリウィジェットをいくつか作成しています。それらの1つは、60秒ごとに更新が必要な時計を含むウィジェットです。したがって、私はappWidgetProviderのonEnabled()関数でアラームを生成します。この関数は、appwidgetproviderによって受信されるクロックアップデートのインテントを60秒ごとに送信します。これは魅力のように機能しますが、私は物事をきれいに保つのが好きなので時計のウィジェットがなくなったらタイマーを取り除くのが好きです。したがって、AppWidgetProviderのonDisabled()関数でアラームを削除します。これは、ウィジェットタイプの最後が削除されたときに呼び出されるためです。AppwidgetのIDはありますが、ウィジェットはありません

しかし、最後のウィジェットを削除しても、appwidgetmanagerにはまだwidgetIdsが残っているため、onDisabled()は呼び出されません。私は、デバイスを再起動しようとしましたが、それらは持続するようです。

これは一般的な動作で、onDisabled()が呼び出されているか、バグですか、何か間違ったことをしていますか?

答えて

1

ホーム画面に追加されないAndroid 1.6ウィジェットまでがリストに残っています。私はそれらを「ファントムウィジェット」と呼びます。ウィジェットを追加しようとすると作成されますが、スペースが足りず、そのことに関するメッセージが表示されます。しかし、ウィジェットは何とか内部のリストにそれを作る。私はこれが2.0で修正されるはずだったと思いますが、わかりません。

onEnabledとonDisabledのみを使用することは、あなたの目的には非常に悪い考えです。画面がオフになっても、ウィジェットは引き続き更新されます。あなたのデバイスは本当にスリープ状態にはならず、バッテリーはあまりにも早く消耗します。少なくともScreenOnとScreenOffのReceiverを追加してください!

+0

お返事ありがとうございます。 - APIレベル5以上で開発していますので、API5のゴーストウィジェットのバグは問題ではありません。申し訳ありませんが、これは明確ではありません。 - だから私のウィジェットは、画面が消えたときに更新されず、 – MrJre

+0

私はそれについてさらに読んで、問題はまだ現バージョンにあるようだ。これは2年前からGoogleに知られているバグです:( – Mark

+0

さらに詳しく調べてみると、ウィジェットの設定作業がキャンセルされたときに起こります。http://stackoverflow.com/questions/4393144/widget-not-deleted-when-passing -result-cancellation-as-result-for-configuration-activ – MrJre

関連する問題