私のアプリにはログアウト機能があります。ユーザーがログアウトをクリックすると、ホーム画面に移動します。現在、戻るボタンを押してアプリを終了しています。しかし、私が欲しいのは、戻るボタンの機能と同じように自動的に(つまり、プログラムで)終了する必要があることです。 finish()を呼び出すことで機能が実行されることを知っています。しかし、それは前のアクティビティに行くことです。
onBackPressed()
は次の理由でサポートされています。APIレベル5
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
onBackPressed();
}
}
@Override
public void onBackPressed() {
//this is only needed if you have specific things
//that you want to do when the user presses the back button.
/* your specific things...*/
super.onBackPressed();
}
onBackPressed()
をオーバーライドする必要はありません-ユーザーが戻るボタンを押したときにデフォルトでアクティビティが実行するアクションとして既に定義されています。したがって、戻るボタンを「プログラムで押す」場合は、onBackPressed()
を呼び出すだけです。
ただし、finish()
が呼び出されるだけです;)
戻るボタンの機能と混同していると思います。デフォルトでは、それはfinish()
の呼び出しであるため、現在のアクティビティを終了します。そのアクティビティの背後に何かがあれば、その画面が表示されます。
ログインからアクティビティを起動するときに、CLEAR_TOPフラグを追加して、終了時にログインアクティビティが表示されないようにすることができます。
メソッドonBackPressed()をオーバーライドすると便利な場合があります。フラグメントを操作し、バックボタンを押すとフラグメント間を変更する場合、前のフラグメントに戻るためです。
アクティビティでオーバーライドした後、onBackPressed
を呼び出します。
単にonBackPressed()を使用できます。
またはフラグメントを使用している場合は、getActivity()。onBackPressed()を使用できます
Finish();を追加するだけです。最初のクラス(ログインアクティビティ)onPause();方法。それで全部です