我想我理解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