0

私は3つのアクティビティを持つアプリを持っています

LoginActivity
ActivityA
ActivityB

ユーザーは LoginActivity で開始します。ログインに成功すると、ActivityA に移動します。ActivityA は、startActivityForResult を使用して ActivityB を呼び出し、onActivityResult を使用して応答を処理します。

ユーザーがActivityAまたはActivityBから「ホーム」ボタンを押してアプリケーションを再起動した場合、ユーザーをLoginActivityに戻したい

onRestart と onResume をいじってみました。これらは両方とも、ActivityA がホーム画面または onActivityResult (ユーザーが ActivityB から戻ったとき) を介して再初期化されるときに呼び出されます。

この要件をどのように実装できますか?

PS: SO で同様の質問を確認しましたが、要件に一致するものが見つかりませんでした。

ありがとう。

4

3 に答える 3

0

各アクティビティの AndroidManifest ファイルにこれを書き込んでみてください

 <activity android:launchMode="singleTask"
        android:name=".LoginActivity" />

 <activity android:launchMode="singleTask"
        android:name=".ActivityA" />

 <activity android:launchMode="singleTask"
        android:name=".ActivityB" />
于 2012-06-07T13:07:01.880 に答える
0

こちらの質問にリダイレクトさせていただきます。あなたの質問に答えるべきだと思います。

于 2012-06-07T12:56:18.513 に答える
0

アクティビティ A とアクティビティ B を開始する意図を宣言するときは、nohistory フラグを使用してみてください。

Intent intent = new Intent(this, ActivityA.class);

// do not keep this intent in history
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

startActivity(intent);

その後、再起動すると、ログイン アクティビティに戻ります。

于 2012-06-07T12:48:07.420 に答える