Android阻止回到以前的活动

时间:2018-02-05 22:09:11

标签: java android android-studio android-activity android-lifecycle

我正在Android应用程序上开发,我希望在用户登录后阻止返回到SignIn活动。我尝试过Intent.FLAG_ACTIVITY_CLEAR_TASK,但它不起作用

Intent intent = new Intent(SignInActivity.this, FirstPage.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

我也尝试在启动Activity后立即添加完成,但这只是给了我一个泄露的窗口错误。

Intent intent = new Intent(SignInActivity.this, FirstPage.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();

我的活动路径是:

MainActivity(我的应用说明)< - > SignInActivity(登录) - >首先(登录)。

用户可以在MainActivity和SigInActivity之间前后移动。如何防止用户从FirstPage返回到SignInActivity或MainActivity?

有什么想法吗?谢谢!

2 个答案:

答案 0 :(得分:1)

调用finish()将结束活动,而不是将其作为您可以返回的活动。您需要查看导致泄露的窗口错误的原因(例如在完成活动时在屏幕上留下通知)并解决该问题而不是使用完成,因为您有一个泄漏的窗口错误。

答案 1 :(得分:0)

使用FLAG_ACTIVITY_NEW_TASK,您的活动将成为历史堆栈新任务的开始。尝试使用两个标志(NEW_TASK和CLEAR_TOP)。

您也可以覆盖onBackPressed方法。

@Override
public void onBackPressed() {
      return; 
}

This帖已解决了一个非常类似的问题,值得一看!