レッスン2を思い出してください キャサリンがRefreshボタンに結びつけられた AsyncTaskを使ってデータをアップデートしました レトはそれがまずいと言っていました AsyncTaskはActivityのライフサイクルと 無関係だからです 仮想マシンはAsyncTaskが実行している限り Activityオブジェクトを持ち続けます たとえAndroidがActivityに対して onDestroyを呼び出して 破棄されると期待してもです スマートフォンを回転すると Activityを破棄して 新たなインスタンスを作成します 単純なAsyncTaskを実装すると 同じアップデートを実行しようとする 2つのスレッドができ それを繰り返します つまり Webサービスから取得する時のような 長時間にわたる可能性のある バックグラウンド作業には最良ではないのです アプリをそのままにしておくと AsyncTaskはプロセスが生きている限り 実行し続けますが 優先度は低い状態であり デバイスがリソースを必要とした場合 皆さんのプロセスが終了させられます さらに大きな問題は 最初にタスクのインスタンスを作成するためには アプリがフォアグラウンドで 実行されている必要があります アプリ開始時に天気をアップデートする目的で タスクを開始したので 天気が早く変化すると 好ましくない動きをするかもしれません ではアップデートの正しい実行方向を学びましょう アプリがフォアグラウンドにある間 プロセスを自動化します しかしもっと重要なのは バッテリ消費を最少にして バックグラウンドで 規則的にアップデートさせることです これは このレッスンの後半で 天気のNotificationを導入する時に 特に重要になるでしょう