FLAG_ACTIVITY_CLEAR_TOP不能被actionbarmenu调用吗?

时间:2014-01-31 13:14:14

标签: android android-intent flags android-lifecycle

我首先展示我的应用的工作流程图 enter image description here

首先,当应用程序被启动时,将创建检查程序,此活动将检查用户是否已记录,如果不是,则进入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屏幕它不清楚   返回堆栈。

1 个答案:

答案 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);

More info about it