Frage

Derzeit verwende ich dies in allen meinen Aktivitäten:

@Override
public void onRestart(){
    onStart();
    onResume();
    runFadeInAnimation();
}

Es "funktioniert", aber ich habe keine Ahnung, ob mich das in Zukunft verarschen wird.Ich bin mir nicht sicher, ob es zufällig funktioniert oder ob es so gemacht werden sollte.Ich habe versucht, es über Folgendes auszuführen:

@Override
public void onRestart(){
    super.onRestart();
    runFadeInAnimation();
}

Aber ich kann nicht - weil alle meine Aktivitäten meine Hauptaktivität erweitern und wenn ich von super ausgeführt werde, versucht es, meine Hauptaktivitäten onRestart () aufzurufen, was zum Absturz führen wird.(Ich möchte auch, dass mein Hauptbild eingeblendet wird, daher führe ich dort auch eine Animation aus.)

Wie kann ich damit umgehen und nicht unwissentlich einen Fehler verursachen?

War es hilfreich?

Lösung

Sehen Sie sich hier den Aktivitätslebensstil an: http://developer.android.com / reference / android / app / Activity.html

Was Sie tun, ist tatsächlich überflüssig mit dem, was bei einem Aktivitätsneustart automatisch passieren soll.

Es hört sich so an, als hätten Sie einige mögliche Designprobleme damit, wie Sie Ihre Hauptaktivität definiert und wie Sie sie erweitern.Wenn ich Vorschläge machen könnte, würde ich sagen, wenn Sie Dinge in einer Aktivität haben, die für ALLE Ihre Aktivitäten gleich sind, fügen Sie diese Dinge in eine "übergeordnete" Aktivität ein, die Sie erweitern können.Die Art und Weise, wie Sie Ihre "Haupt" -Aktivität definiert haben, scheint Besonderheiten zu enthalten, die sich nicht für andere Aktivitäten eignen.Wenn Sie also Ihre "übergeordnete" Aktivitätsklasse eingerichtet haben, erweitern Sie sie, um die "Haupt" -Aktivität zu erstellen, und fügen Sie dort die "Einblend" -Logik ein.

Letztendlich sollten Sie in der Lage sein, super.onRestart ohne nachteilige Ergebnisse aufzurufen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top