机器人 "close" Activity

标签 android android-activity

我有一个具有“登录”和“注销”操作的应用程序。用户登录后,在他们注销时堆栈中可能还剩下任意数量的 Activity 。

当用户注销时,我希望重置所有应用程序状态。我清除了我的磁盘缓存和首选项,但在运行(暂停) Activity 中仍有剩余状态。事实上,当用户再次登录时,我发现上次登录 session 中的旧 Activity 仍然保持着它们的旧状态(我当然理解为什么会这样)。我怎样才能使整个应用程序重置/关闭/重新启动?

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

编辑:我已经尝试使用各种标志启动“登录” Activity ,但无济于事,

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

最佳答案

在您的 list 上,您可以将以下属性添加到您的 Activity 中:

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>

关于机器人 "close" Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11199216/

相关文章:

android - 可以使用 VpnService 实现来捕获和发送数据包吗?

android - 在后台录制视频,最好没有文件或表面,也最好在 2.2 上

android - 第二次运行线程使应用程序崩溃

java - 如何隐藏内部 fragment ?

android - 如何根据两个不同的 flavor 维度设置我的 Android 应用程序包名称?

php - 如何查看Mysql表有没有变化?

android - 让一个 Activity 根据另一个 Activity 的结果运行一些代码

android - 将库源添加到 Android Studio

android - 当子 Activity 关闭时更新 Activity

java - Activity 生命周期问题(如何检测 Activity 是否处于前台)