アプリを終了させるfinish()とmoveTaskToBack()の違いをまとめました。

・finish()
現在のアクティビティを閉じて前のアクティビティに戻ります。
バックボタンを押した時と同じ動作になります。
実行するとonPause()→onDestroy()の順でイベントが発生します。
復帰時はonCreate()→onStart()→onResume()の順でイベントが発生します。

・moveTaskToBack()
アプリケーション全体が中断状態になります。
ホームボタンを押した時の動作と同じ動作になります。
実行するとonPause()イベントが発生します。
次の再開までバックグラウンドで待機状態になり、メモリ不足になった時はOSにより自動でonDestroy()イベントが発生してアプリケーションの全てのタスクが終了します。
onDestroy()が呼ばれる前に復帰した時は最後のアクティビティから再開し、
onRestart()→onStart()→onResume()の順でイベントが発生します。