について混乱していActivity.onDestroy()
ます。アクティビティが破棄されたときにいくつかのリソースを解放する必要がありますが、「戻る」キーを押したときに onDestroy() が呼び出されたようですが、Dalvik によってアクティビティが強制終了されたときではありません。ログを追加するだけでテストしました:
Log.v("my_tag", "onDestroy() called");
onCreate() メソッドでも同じです。
Log.v("my_tag", "onCreate() called");
次に、アクティビティを開始すると、ログに表示されます: onCreate() called
. 「戻る」キーを押してからアクティビティを再度開始すると、次のように表示されます。
onDestroy() called
onCreate() called
次に、「ホーム」キーを押してアクティビティに再度移動しますが、ログは変更されません。ここで大丈夫です。
次に、「ホーム」キーをもう一度押して、本当に「重い」アプリケーションをいくつか起動します。ログには onDestroy() については何もありませんが、アクティビティを再度開始すると、ログに次のように表示されます: onCreate() called
! そのため、onDestroy() は呼び出されませんでしたが、Activity は強制終了されました。どうしたの?