2

私のアプリケーションは次のように動作します:

開始時にAppStartActivity、何かを実行し、それ自体を終了しMainActivity、ユーザーがログインしている場合などに開始するものがありますLoginActivity

LoginActivityMainActivityユーザーが正常にログインすると開始します。

どのMainActivityユーザーSomeActivityからログアウトできますか。この状況のアクティビティ スタックは ですMainActivity > SomeActivity。それは正しいです、戻るボタンはうまく機能します。ユーザーLogOutがボタンをクリックすると、問題が発生します。表示する必要がありますLoginActivityMainActivitySomeActivityもうアクティビティ スタックは必要ありません。

終了しなければ、この問題を解決できますAppStartActivity。私はフラグでその時戻ることができFLAG_ACTIVITY_CLEAR_TOP、それはうまくいくでしょう。しかし、ここで戻るボタンに問題があります。ユーザーが戻るボタンでこのアクティビティに戻ってほしくありません。代わりにアプリを終了させたい。

更新しました:

Flagsが最適ですが、API レベル 9 で動作する必要がありますFLAG_ACTIVITY_NEW_TASKFLAG_ACTIVITY_CLEAR_TASK

4

3 に答える 3

1

ユーザーがログアウトしたい場合は、 で起動して、ユーザーがログアウトしたMainActivityことIntent.FLAG_ACTIVITY_CLEAR_TOPを示すエクストラを渡すだけです。その後、すぐに起動して終了することができます。IntentMainActivityMainActivityLoginActivity

これを行う方法の詳細については、スタック Android からトップ アクティビティを削除するという私の回答を参照してください。

于 2013-11-08T21:37:34.183 に答える
0

私があなたを正しく理解している場合にfinish()のみ、あなたは見逃しているようです。SomeActivity

この状況のスタックは MainActivity > SomeActivity です

クリックLogoutButton

onClick(View v)
{
    Intent i = new Intent(SomeActivity.this, LoginActivity.class);
    i.setFlags(Intent.FLAG_ACTIVITIY_CLEAR_TOP);
    startActivity(i);
    finish();
}

この状況のスタックは LoginActivity です

[戻る]をクリックしButtonてアプリを終了します

于 2013-11-08T14:33:38.013 に答える