我想我理解Android上的Activity生命周期,但我仍然无法确定为什么会发生下面的情况。活动之间共享的Android菜单(不需要)
- 登录活动 - 登录屏幕
- 主要业务 - 主要应用接口
在登录活动,我连接到服务来验证登录。如果密码正确,我切换到主要活动使用:
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;
}
到目前为止好。但我希望用户能够注销并返回到登录屏幕。 因此,在主要活动我在菜单中的选项,允许注销:
@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;
}
}
如果我按该菜单按钮,应用程序再次显示登录活动。但是如果我按下菜单键,即使应用程序不可见,应用程序也会显示来自主要活动的菜单。此外,如果我回到主屏幕(按HOME)并在一段时间后回到我的活动,应用程序将显示登录活动,但如果按下MENU键,主应用程序菜单仍会显示。
如何从登录活动中删除菜单?
感谢
它可能是继承的结果吗? (例如`class Login extends Main`)。 – 2010-12-04 13:56:03
这是一个聪明的问题。然而,这里是我的类结构: - MyAbstractActivity(基类),LoginActivity扩展MyAbstractActivity,MainActivity扩展MyAbstractActivity。我膨胀MainActivity类中的菜单。 – Marco83 2010-12-06 10:55:01