Frage

Ich entwickle für Android mithilfe von Android-Annotationen.Ich habe ein beobachtbares Singleton-Objekt, für das ich als Beobachter Aktivität hinzufügen möchte.Etwas wie folgt:

@EActivity(R.layout.myActivity)
public class MyActivity extends SherlockActivity implements Observer { 

    @Bean //has singleton scope
    protected Observerable o;

    @Override
    public void onCreate() {
        o.registerObserver(this);
    }

    @Override
    public void onDestroy() {
        o.unregisterObserver(this);
    }

    //more code

Meine Frage betrifft die On-Destroy-Methode.Wird es eine Situation geben, in der Android die Aktivität während eines gestoppten oder pausierten Zustands beendet? ohne Berufung onDestroy()?Wenn dies der Fall ist, mein Observerable könnte einen Live-Verweis auf eine Aktivität behalten, die vom System nicht mehr verwendet wird, was nicht gut ist.Oder ist das nicht der Fall?Wenn es meine Vermutung wäre, würde ich schwache Hinweise auf alle meine Aktivitäten in meiner Liste der registrierten Beobachter behalten, damit diese automatisch abgemeldet werden können.Ist das eine gute Lösung oder wird sie nicht benötigt?

War es hilfreich?

Lösung

Das Betriebssystem kann Ihren Prozess beenden, ohne onDestroy aufzurufen. Ansonsten können Sie sich darauf verlassen, dass onDestroy aufgerufen wird.Vorausgesetzt, Ihr Observable befindet sich im selben Prozess wie die Aktivität, ist alles in Ordnung.

Andere Tipps

Entsprechend dem Lebenszyklus der Aktivität auf der Android-Dokumentation, Dieser Fall kann auftreten, wenn eine andere Anwendung gestartet werden muss und das System nicht über genügend Speicher verfügt.

Bearbeiten:Nun, es scheint, dass das System diese Methode in diesem Fall immer noch aufruft.Ich bin mir über den Workflow nicht mehr ganz sicher ...

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