アプリケーションのすべてのアクティビティを強制終了するにはどうすればよいですか?
使用してみthis.finish()
ましたが、1 つのアクティビティを殺すだけです。
実際、ユーザーが (アクティビティの 1 つだけで) 戻るボタンに触れたときに、アプリケーションがホーム ボタンを押した場合と同じように動作するようにしたいと考えています。
アプリケーションのすべてのアクティビティを強制終了するにはどうすればよいですか?
使用してみthis.finish()
ましたが、1 つのアクティビティを殺すだけです。
実際、ユーザーが (アクティビティの 1 つだけで) 戻るボタンに触れたときに、アプリケーションがホーム ボタンを押した場合と同じように動作するようにしたいと考えています。
android:noHistory="true"
AndroidManifest.xml ですべてのアクティビティを設定できます。したがって、それらは履歴スタックに配置されず、戻るボタンでホーム画面に移動します。
これは以前から何度も議論されてきました。本質的に簡単な方法はありません。ユーザーはホームを押してアプリを終了します (ご指摘のとおり)。
メソッドをオーバーライドしonBackPressed
、ホームボタンを押したときに何が起こるかを実行します。すべてのアクティビティを実際に閉じるわけではありませんが、特定のアクティビティのバックプレスがホームボタンをエミュレートすることを求めています。
@Override
public void onBackPressed() {
Intent i = new Intent(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
startActivity(i);
}
それをアクティビティに配置すると、戻ると家に帰ります。メソッドの元の実装にはonBackPressed
super への呼び出しが含まれていることに注意してください。これは意図的に削除されています。この質問が非常に古いことは知っていますが、彼は明確に別のことを尋ねています
すべてのアクティビティを強制終了するには、onBackPressed でこれらのコードを使用します。
@Override
public void onBackPressed() {
if (getFragmentManager().getBackStackEntryCount()>0) {
getFragmentManager().popBackStackImmediate();
} else {
finishAffinity();
System.exit(0);
}
}