0

メソッドでかなりの量のネットワーク要求を行う Android ウィジェットがありますonUpdate。私のウィジェットは 1 日に 1 回更新されるはずです。を使用して常に非常に重いCanvas描画を行いますAsyncTask

デバイスを縦向きから横向きにし、縦向きに戻すと、onUpdateメソッドが再度呼び出され、それらの重いネットワーク リクエストがすべて再度発行されたように見えます。

可能であれば、向きが変更されたときにアプリケーションが再更新されないようにすることはできますか?

4

1 に答える 1

1

私のウィジェットは 1 日 1 回更新されることが期待されています

それを完全に制御することはできません。onUpdate()ホーム画面は、何らかの理由で、より頻繁に通話をトリガーすることを歓迎します.

可能であれば、向きが変更されたときにアプリケーションが再更新されないようにすることはできますか?

いいえ。ただし、Kuffs が示唆するように、更新プロセスの費用を削減できます。

  • ネットワーク I/O の結果をディスクにキャッシュする
  • ビットマップ(「非常に重いキャンバス描画」の結果と思われるもの)をディスクにキャッシュします

または、onUpdate()電話が早すぎて、ホーム画面が以前のRemoteViews. 個人的には、RemoteViewsホーム画面の実装によって以前のものが破棄された場合RemoteViews(たとえば、プロセスが終了して再起動された場合) に備えて、キャッシュされたコンテンツを使用して再生成します。

また、長時間の作業IntentServiceは ではなくをご利用ください。それ以外の場合は、プロセスをメモリに保持するものは何もなく、作業が完了する前にプロセスが終了する可能性があります。AsyncTaskonUpdate()onUpdate()

于 2013-10-08T14:06:12.603 に答える