Ich glaube, ich habe den Activity Lifecycle auf Android verstanden, aber ich kann immer noch nicht verstehen, warum das folgende passiert.Android-Menü zwischen den Aktivitäten geteilt (unerwünscht)
- Anmeldung Aktivität - Anmeldebildschirm
- Haupttätigkeit - Hauptanwendungsschnittstelle
In Anmeldung Aktivität, verbinde ich zu einem Dienst die Login zu validieren. Wenn das Passwort korrekt ist, wechsle ich zu Hauptaktivität mit:
Es gibt kein Menü Optionen in Login-Aktivität. Ich habe eine Menü-Optionen in Haupttätigkeit, die ich mit aufblasen:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.option, menu);
return true;
}
So weit so gut. Aber ich möchte, dass der Benutzer sich abmelden und zum Anmeldebildschirm zurückkehren kann. So in Haupttätigkeit habe ich eine Option im Menü, das ermöglicht, sich abzumelden:
@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;
}
}
Wenn ich das Menü-Taste drücken, zeigt die Anwendung erneut Aktivität Anmeldung. Aber wenn ich die MENÜ-Taste drücke, zeigt die Anwendung das Menü aus Hauptaktivität an, auch wenn es nicht sichtbar ist.
Wenn ich zurück zum Home-Bildschirm gehe (HOME drücke) und nach einiger Zeit wieder aktiv bin, zeigt die Anwendung die Login-Aktivität an, aber wenn ich die MENÜ-Taste drücke, wird das Hauptanwendungsmenü angezeigt.
Wie entferne ich das Menü von der Login-Aktivität?
Dank
Könnte es ein Ergebnis der Vererbung sein? (z.B. 'class Login erweitert Main'). –
das ist eine kluge Frage. Hier ist jedoch meine Klassenstruktur: - MyAbstractActivity (Basisklasse), LoginActivity erweitert MyAbstractActivity, MainActivity erweitert MyAbstractActivity. Und ich blase das Menü in der MainActivity-Klasse auf. – Marco83