检查我们是否来自Android Back Button

时间:2017-07-28 11:42:32

标签: android

我有一个Android应用程序,如下所示:

  

LoginActivity - > MainActivity

我的Android问题是,如果我们已成功登录(我们在MainActivity),然后按手机上的Back Button,我们将返回LoginActivity。这没有任何意义,因为我们已登录。

如果我们来自Back Button,我如何检查LoginActivity?我尝试了这段代码,但它没有用,因为来自Back Button的时候没有运行onCreate。

{{1}}

6 个答案:

答案 0 :(得分:2)

只需简单地调用finish()就像这样

Intent intent = new Intent(LoginActivity.this, HomeScreenActivity.class);
startActivity(intent);
finish();

或试试这个

 Intent intent = new Intent(LoginActivity.this, HomeScreenActivity.class);
 intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
 startActivity(intent);

答案 1 :(得分:1)

在开始主要活动之前,只要登录成功就完成LoginActivity。

 Intent intent = new Intent(LoginActivity.class, MainActivity.class);
 startActivity(intent);
 finish();
其他明智的 活动2在MainActivity中定制onBackPressed

 @Override
public void onBackPressed() {

// do your stuff
}

答案 2 :(得分:0)

您可以在清单onBackPressed中设置LoginActivity,而不是检查noHistory=true中的<p>There is a huge demand for long text. Therefore, this paragraph contains a couple of words that are not particularly interesting. Much more interesting is whether the image below is shown correctly. Hmm...</p> <ul> <li><p>The following letters should have roughtly the same size: X <img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/f5471531a3fe80741a839bc98d49fae862a6439a" alt="X" style="height:1.05em;vertical-align: -3px" /></p> </li> </ul> 来电,将其从后台堆栈中移除。

答案 3 :(得分:0)

您可以使用startActivtyForResult()进行活动转换,并在登录活动中处理onActivityResult。您从此覆盖方法关闭活动。

注意:您应该从mainActivity按下后退按钮来调用setResult(RESULT_OK)。

答案 4 :(得分:0)

如果您已经注册,请尝试在MainActivity中检入onBackPressed方法。如果是这样,请不要去LoginActivty。

 @Override
public void onBackPressed()
{
     // code here 
     super.onBackPressed();  
}

答案 5 :(得分:0)

@Solo,

LoginActivity转到MainActivity后,您的LoginActivity会转到Backstack,因此点击MainActivity中的后退按钮会再次调用LoginActivity来自backstack,它调用onStart()方法。

有多种方法可以让用户从LoginActivity

返回MainActivity

<强>第一

致电LoginActivity

后,

完成MainActivity

所以例如

Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
finish(); // will finish that activity.

第二

Intent newIntent = new Intent(this,MainActivity.class);
newIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(newIntent);

这里Intent.FLAG_ACTIVITY_NEW_TASK清除堆栈并使其成为最重要的堆栈。所以当我们按下后退按钮时,整个应用程序将被终止。