我认为我理解Android上的Activity生命周期,但我仍然无法理解为什么会发生这种情况。
在Login活动中,我连接到服务以验证登录。如果密码正确,我使用以下方法切换到主要活动:
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
登录活动中没有“选项”菜单。 我在主要活动中有一个选项菜单,我用它充气:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.option, menu);
return true;
}
到目前为止一切顺利。但我希望用户能够注销并返回登录屏幕。 所以在Main活动中,我在菜单中有一个允许注销的选项:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.menuReset:
getModel().deleteCredentials // stuff to logout from my service
startActivity(new Intent(this, LoginActivity.class));
finish();
return true;
}
}
如果按下该菜单按钮,应用程序将再次显示“登录”活动。但是,如果按MENU键,应用程序将显示主要活动中的菜单,即使它不可见。
此外,如果我回到主屏幕(按HOME)并在一段时间后返回我的活动,应用程序将显示登录活动,但如果我按MENU键,主应用程序菜单仍会显示。
如何从登录活动中删除菜单?
由于
答案 0 :(得分:1)
Oooooops,我的坏。当我处理另一段代码时,意外复制了膨胀菜单代码并粘贴到了Login Activity:)
对此感到抱歉 无论如何,谢谢你的支持!!
答案 1 :(得分:0)
我认为您不需要从MainActivity调用startActivity来转到Login Activity。因为活动链,就足以从你的MainActivity调用完成。