Android アプリケーションをプログラムで終了するためのコードを見つけました。 で次のコードのいずれかを使用するとonDestroy()
、アプリケーションは完全に終了しますか?
System.runFinalizersOnExit(true)
(または)android.os.Process.killProcess(android.os.Process.myPid());
終了ボタンをクリックした後、アプリケーションをバックグラウンドで実行したくありません。これらのコードのいずれかを使用してアプリを終了できるかどうか教えてください。使用できる場合、どのコードを使用できますか? Android でアプリを終了するのに良い方法ですか?
ベストアンサー1
API 16 以降では、名前と Javadoc の説明から、関連するすべてのアクティビティを閉じることに非常に近いと思われる、finishAffinity メソッドを使用できます。
this.finishAffinity();
このアクティビティと、現在のタスク内で同じアフィニティを持つそのすぐ下のすべてのアクティビティを終了します。これは通常、アプリケーションが別のタスク (アプリケーションが理解できるコンテンツ タイプの ACTION_VIEW など) で起動でき、ユーザーが上方向のナビゲーションを使用して現在のタスクから独自のタスクに切り替えた場合に使用されます。この場合、ユーザーが 2 番目のアプリケーションの他のアクティビティに下方向へ移動した場合、タスク切り替えの一部として、それらのアクティビティはすべて元のタスクから削除する必要があります。
この終了では、前のアクティビティに結果を渡すことはできず、そうしようとすると例外がスローされることに注意してください。
API以来21非常に似たコマンドを使うことができます
finishAndRemoveTask();
このタスクのすべてのアクティビティを終了し、最近のタスク リストから削除します。