Androidでのプログラミングについてです。
初期の頃は、finish()
現在のアクティビティを閉じてアクティビティスタックの前に戻り、System.exit(0)
アプリケーション全体を閉じると思っていました。
しかし、私は間違っていました。私は小さな実験を行い、両方が現在の Activity のみを終了することを理解しました。
私が気付く唯一の違いは、Android 2.3.3
- ActivityResult
onActivityResult()
はusingに伝播されますfinish()
。onActivityResult()
求められていないのにSystem.exit(0)
。
しかし、Android 4.2.2 では、両方に対して onActivityResult() が呼び出されます。exit() のインテントは null でした。(私はこれら 2 つのデバイスでのみテストしました)
- exit() を使用するとタイムラグが発生します
finish()
が、高速です (exit() にはより多くのバックグラウンド操作があるようです)。
そう、
2つの違いは何ですか?
どのような状況で exit() を使用できますか?
私は、2 つの方法の間に欠けているものがあると信じています。誰かがもっと説明して私を訂正してくれることを願っています。
ありがとう
リクエストに応じて編集:
2 つのアクティビティで Android アプリケーションを作成します。Intent を使用して Launcher アクティビティから 2 番目のアクティビティを呼び出します。次に、2 番目のアクティビティ内で、ボタンのクリック時に を呼び出しますSystem.exit(0);
。" VM はそれ以上の実行を停止し、プログラムは終了します。 "????(ドキュメントによると)
そこに最初の活動が見られます。なんで?(私が間違っている/私が正しかったことを証明してください)