4

ログアウト後、ユーザーはAndroidのログイン画面に移動します。これで、ユーザーが電話の戻るボタンをクリックしても、ログイン画面自体にとどまるはずです。

どうすればAndroidでそれを可能にできますか?
アプリケーションで次のコードを使用しましたが、アプリケーションが閉じます。ログイン画面にのみ表示されます

Intent objsignOut = new Intent(getBaseContext(),Hello.class);
objsignOut.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(objsignOut);

正しい方法を教えてください。

4

5 に答える 5

8

onBackPressedログインアクティビティでをオーバーライドして、何もしません。

public void onBackPressed() {
    //do nothing
}
于 2012-11-30T07:41:15.900 に答える
4

ここここで述べたように、onBackPressedメソッドをオーバーライドするよりも簡単でクリーンなソリューションがあるように思われます。

(ログインまたはログアウト時に)新しいアクティビティを起動するときにフラグを指定して、戻るボタンの動作をオーバーライドするのではなく、単に「バックスタック」をクリアすることができます。

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);

これは、ログアウト後だけでなく、ログイン後にも使用できる、より安全なソリューションです。

于 2018-12-30T13:37:48.153 に答える
1
public void onBackPressed(){
    if(appCanClose){
        finish();
    }
}

これらの関数は、システムフレームワーク(コードにない場合に使用される)とコードの両方に存在できます。空のままにすると、戻るボタンが押されてもアプリは何もしません。

この例では、ブール値appCanClseがtrueの場合、戻るボタンはアプリを終了します。falseの場合、戻るボタンは何もしません。ユーザーがまだアプリを終了する方法があることを確認します。:p

于 2012-11-30T07:47:01.680 に答える
1

この2行のコードを追加するだけで実行できます

@Override
public void onBackPressed(){
    
    moveTaskToBack(true);

}

前のアクティビティに戻るのを防ぎ、誰かが戻るボタンを押したときにアプリをバックグラウンドに移動します

于 2020-11-27T20:44:43.803 に答える
0

実際の解決策は

@Override
    public void onBackPressed() {
        super.onBackPressed();
        finishAffinity();
    }

このコードをログインアクティビティに追加します。ログインページで戻るボタンをクリックするとアプリが閉じます。

于 2021-10-26T14:45:42.860 に答える