【发布时间】:2012-05-12 18:43:33
【问题描述】:
基本上,我的应用程序有一个 loginScreen,一旦登录,您就可以进行许多活动。当我按下主页按钮时,应用程序进入后台,如果用户在一定时间内没有打开它,用户会话将关闭并且你返回到 loginScreen。现在的问题是,如果我想在会话过期后从 loginScreen 关闭应用程序,我按返回键,它应该关闭,但它没有。它把我带到堆栈中的前一个元素。
连线的事情是,在所有 onBackPressed() 方法上,每当我开始新的意图时,我总是使用intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
在 loginScreen onBackPressed() 我打电话给finish()
但它不起作用。有谁知道为什么?以及我该如何解决这个问题。
谢谢你的帮助!!!
代码 sn-ps 在许多活动中:
@Override
public void onBackPressed() {
mpButtonClick.start();
Intent intent = new Intent(this, MenuPagina.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
super.onBackPressed();
}
在登录活动中:
@Override
public void onBackPressed() {
super.onBackPressed();
getIntent().setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
LoginActivity.this.finish();
}
【问题讨论】:
-
用一些代码编辑了它
-
这对我来说可能是完全错误和愚蠢的,但是 super.onBackPressed(); 有关系吗?在您清除意图/完成之前正在发生吗?
-
没有,因为 javadoc 说“默认实现只是完成当前活动”