我有一个Android应用程序,如下所示:
LoginActivity - > MainActivity
我的Android问题是,如果我们已成功登录(我们在MainActivity),然后按手机上的Back Button,我们将返回LoginActivity。这没有任何意义,因为我们已登录。
如果我们来自Back Button,我如何检查LoginActivity?我尝试了这段代码,但它没有用,因为来自Back Button的时候没有运行onCreate。
{{1}}
答案 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
清除堆栈并使其成为最重要的堆栈。所以当我们按下后退按钮时,整个应用程序将被终止。