1

「ログイン」アクションと「ログオフ」アクションを持つアプリケーションがあります。ユーザーがログインした後、ログオフした時点でスタックに任意の数のアクティビティが残っている可能性があります。

ユーザーがログオフしたときに、すべてのアプリケーションの状態をリセットしたいと思います。ディスクキャッシュと設定をクリアしましたが、実行中の(一時停止された)アクティビティにまだ状態が残っています。実際、ユーザーが再度ログインすると、前のログインセッションの古いアクティビティが古い状態のまま残っていることがわかります(もちろん、これがなぜであるかは理解できます)。アプリ全体をリセット/クローズ/再起動するにはどうすればよいですか?

を使用して「ログオフ」結果コードをバブルアップし、各アクティビティを順番に閉じることstartActivityForResult()についての投稿をいくつか見ました。onActivityResult()これは苦痛に見えます、そして私はもっと良い方法があることを望んでいます。

編集:私は無駄にさまざまなフラグで「ログイン」アクティビティを開始しようとしました、

loginIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);
4

1 に答える 1

1

マニフェストで、アクティビティに次の属性を追加できます。

android:clearTaskOnLaunch="true"

したがって、次のような結果になります。

<activity android:name=".ui.Activity" android:clearTaskOnLaunch="true" android:theme="@style/MyTheme">
                <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
于 2012-06-26T00:31:15.663 に答える