android“关闭”活动

时间:2012-06-26 00:22:44

标签: android android-activity

我有一个具有“登录”和“注销”操作的应用程序。用户登录后,在注销时可能会在堆栈上留下任意数量的活动。

当用户注销时,我希望重置所有应用程序状态。我清除了我的磁盘缓存和首选项,但仍然处于运行(暂停)活动状态。事实上,当用户再次登录时,我发现上次登录会话中的旧活动仍然存在于旧状态(我明白为什么会这样)。如何让整个应用程序重置/关闭/重启?

我看过一些关于使用startActivityForResult()onActivityResult()来冒泡“注销”结果代码的帖子,导致每个活动依次关闭。这看起来很痛苦,我希望有更好的方法。

编辑:我尝试用各种标志开始“登录”活动无济于事,

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

1 个答案:

答案 0 :(得分: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>