如何在退出时清除背景数据

时间:2014-12-09 10:58:47

标签: android

我一直在写一个多帐户管理模块。我想要做的是在退出时引导用户进入帐户列表活动。问题是当用户按下后退按钮时,它恢复了后台活动,用户仍然可以使用应用程序甚至退出。当我清除数据库和SharedPreference中的帐户信息时,它也不起作用。

为了更好地理解,我再次描述了这个问题。

例如,我有三个活动,A,B和C. A作为主要活动与列表,B作为设置菜单活动,C作为帐户列表活动。

当我从A导航到B时,单击B中的“退出”菜单,然后流程从B流向C. 因为它要求用户选择(如果有)或登录帐户。

现在问题是当用户按下后退按钮时,它可以从C返回到A而不是退出应用程序(转到主屏幕)。请参见屏幕截图。enter image description here

由于用户已经退出,我从C导航回A是没有意义的。在这种情况下,C应该是唯一可见的活动。

但我不知道如何实现这一点,我已经清除了本地存储中的帐户信息,所以它不应该是设置问题。

那么如何清除背景活动A?

任何评论都将不胜感激。

2 个答案:

答案 0 :(得分:1)

在共享首选项或数据库中维护一个标志“isLoggedIn”。在您的启动器/第一个活动中,选中此标志并决定是调用登录活动还是直接调用xyz活动。当您再次清除数据时,请在意图中使用clear_top标志调用您的启动器/第一个活动。

答案 1 :(得分:0)

在活动C中尝试此代码

@Override
public void onBackPressed() {
        Intent startMain = new Intent(Intent.ACTION_MAIN);
        startMain.addCategory(Intent.CATEGORY_HOME);
        startActivity(startMain);
        }