私はアンドロイドのプログラミングについて話しています。初期の頃にはfinish()とSystem.exit(0)の相違点
私はfinish()
は、現在の活動を閉じ、アクティビティスタックに戻る前に行く、と思った、とSystem.exit(0)
は、アプリケーション全体を閉じます。
しかし、私は間違っていました。 小さな実験を行いましたが、は両方とも現在のアクティビティだけ終了することを理解しました。私は気づくことができ
唯一の違いは、ActivityResult
- のAndroid 2.3.3に
onActivityResult()
がfinish()
を使用して戻って伝播される、ということです。一方、System.exit(0)
にはonActivityResult()
が呼び出されていません。
しかし、Android 4.2.2では、両方に対してonActivityResult()が呼び出されました。 exit()ではIntentがnullだった。 finish()
が速くであるのに対し、exit()を使用した場合
- (私はこれらの2つのデバイスでテスト)タイムラグがあります。(出口でより多くのバックグラウンド処理のように思えるがあります())
ので、
2つの違いは何ですか?
どのような状況でexit()を使用できますか?
私は2つの方法の間に何かがないと思っています。 誰かがもっと説明し、私を修正できることを願っています。 REQUEST UPON
おかげ
EDIT:
2つの活動でAndroidアプリケーションを作成します。インテントを使用してランチャーアクティビティから2番目のアクティビティを呼び出します。今度は、2回目のアクティビティの中で、ボタンをクリックすると、System.exit(0);
が呼び出されます。 "VMをさらに実行し、プログラムを終了します停止する。" ????(documentationに従って)
Iが最初のアクティビティを参照してください。どうして?Androidデベロッパーによると
http://stackoverflow.com/questions/2033914/quitting-an-application-that-that-frowned-uponです。ここで答えを確認してください – Raghunandan
@ Raghunandan:それはいいです。誰もが見てください。しかし膨大な量の情報。誰でも私の主題に合わせて簡単に教えてもらえますか? – Nizam
'System.exit()'を使用しないでください。私はそれをお勧めしません。 'finish()'を使ってください。ナビゲーションにはナビゲーション・ドロワーを使用できます。 – Raghunandan