我首先展示我的应用的工作流程图
首先,当应用程序被启动时,将创建检查程序,此活动将检查用户是否已记录,如果不是,则进入log_1活动并且检查程序活动已完成。
然后用户在log1中选择方法 - >将登录数据放入log2 - >系统检查值是否正确,当我要去menu1时,这里是FLAG_ACTIVITY_CLEAR_TOP
的开始活动。当我单击后退按钮时,我退出应用程序,因此它的工作方式应该如此。
标志的意图代码:
Intent intent = new Intent(LoginStation.this, ChooseMenu.class);
//clears all activities in stack, and we only have acitivity which we going to
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
在菜单的每个屏幕中,我都有操作栏,按钮退出,当我点击它时,log1屏幕是用FLAG_ACTIVITY_CLEAR_TOP
创建的,但现在当我点击后退按钮时,它会返回到菜单屏幕,而不是退出应用程序。
我的目标是当用户转到menu1或log1屏幕后退堆栈 应该是清楚的,但显然我犯了一些错误,我没有 想法在哪里。如果我从log3转到菜单后面的堆栈被清除,当我 使用相同的方法从菜单到log1屏幕它不清楚 返回堆栈。
答案 0 :(得分:2)
添加此代码以清除堆栈Difference between addFlags and setFlags
Intent intent = new Intent(LoginStation.this, ChooseMenu.class);
//clears all activities in stack, and we only have acitivity which we going to
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);