私のウィジェットは 1 日 1 回更新されることが期待されています
それを完全に制御することはできません。onUpdate()ホーム画面は、何らかの理由で、より頻繁に通話をトリガーすることを歓迎します.
可能であれば、向きが変更されたときにアプリケーションが再更新されないようにすることはできますか?
いいえ。ただし、Kuffs が示唆するように、更新プロセスの費用を削減できます。
- ネットワーク I/O の結果をディスクにキャッシュする
- ビットマップ(「非常に重いキャンバス描画」の結果と思われるもの)をディスクにキャッシュします
または、onUpdate()電話が早すぎて、ホーム画面が以前のRemoteViews. 個人的には、RemoteViewsホーム画面の実装によって以前のものが破棄された場合RemoteViews(たとえば、プロセスが終了して再起動された場合) に備えて、キャッシュされたコンテンツを使用して再生成します。
また、長時間の作業IntentServiceは ではなくをご利用ください。それ以外の場合は、プロセスをメモリに保持するものは何もなく、作業が完了する前にプロセスが終了する可能性があります。AsyncTaskonUpdate()onUpdate()