我一直在写一个多帐户管理模块。我想要做的是在退出时引导用户进入帐户列表活动。问题是当用户按下后退按钮时,它恢复了后台活动,用户仍然可以使用应用程序甚至退出。当我清除数据库和SharedPreference中的帐户信息时,它也不起作用。
为了更好地理解,我再次描述了这个问题。
例如,我有三个活动,A,B和C. A作为主要活动与列表,B作为设置菜单活动,C作为帐户列表活动。
当我从A导航到B时,单击B中的“退出”菜单,然后流程从B流向C. 因为它要求用户选择(如果有)或登录帐户。
现在问题是当用户按下后退按钮时,它可以从C返回到A而不是退出应用程序(转到主屏幕)。请参见屏幕截图。
由于用户已经退出,我从C导航回A是没有意义的。在这种情况下,C应该是唯一可见的活动。
但我不知道如何实现这一点,我已经清除了本地存储中的帐户信息,所以它不应该是设置问题。
那么如何清除背景活动A?
任何评论都将不胜感激。
答案 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);
}