3

私のアプリでは、アクティビティを次々に開始し、別のアクティビティを呼び出す前にアクティビティを終了していません。しかし、ユーザーがログアウトボタンを押すと、スタックからすべてのアクティビティを終了して、ログインアクティビティを開始したいと思います。

アクティビティログイン(終了&呼び出し)->アクティビティB->アクティビティC->アクティビティD->ログアウト->アクティビティログイン。

ユーザーがログインアクティビティで戻るキーを押すと、私の場合はアクティビティCに戻ります...しかし、それは避けたいと思います。

4

2 に答える 2

7

あなたがすべきことは、アクティビティを呼び出しLogin、スタック内のその上のすべてのアクティビティをクリアすることです。

Intent intent = new Intent(this, Login.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

これにより、前のログインアクティビティを再開するだけでなく、新しいログインアクティビティを作成するようにフラグが立てられます。そして、その上のすべてのアクティビティをクリアします。(B、C、D)。

于 2012-10-20T18:05:45.793 に答える
0

それが役立つかどうかはわかりませんが、マニフェストの宣言されたアクティビティ(B、C、D)に次のタグを追加してみてください。

android:noHistory='true'

アクティビティをアクティビティスタックから削除し、ユーザーがアクティビティから離れて画面に表示されなくなったら、アクティビティを終了する必要があります(finish()メソッドが呼び出されます)。

こちらをご覧ください。

于 2012-10-20T18:09:40.817 に答える