Überlebe ViewModel Aktivität speichern und wiederherstellen?

8

Instanzen der neuen Klasse ViewModel können Konfigurationsänderungen überleben, wenn sie wie folgt verwendet werden:

%Vor%

Zusätzlich zu Konfigurationsänderungen gibt es jedoch auch ein Szenario zum Sichern und Wiederherstellen, wenn der gesamte Anwendungsvorgang beendet wird.

Werden die Werte der Felder in ViewModel während des Speicher-Wiederherstellungs-Szenarios beibehalten?

Bearbeiten: basierend auf der Antwort auf diese Frage, schrieb ich diesen Artikel: Die Android ViewModel-Architekturkomponente ist gefährlich

    
Vasiliy 30.05.2017, 07:36
quelle

1 Antwort

9

Laut ViewModelProvider Dokumentation (überprüfen Sie get Methode), ViewModel wird nicht beibehalten, wenn der Prozess der App beendet wird:

  

Das erstellte ViewModel ist dem angegebenen Bereich zugeordnet, und bleibt erhalten, solange der Bereich aktiv ist (z. B. wenn es sich um eine Aktivität handelt, bis sie beendet oder der Prozess beendet wird)

Überprüfen Sie außerdem Ian Lake Antwort auf ähnliche Frage: Ссылка

  

Sie haben Recht: Das ViewModel wird zerstört, wenn Ihr Prozess von Android beendet wird. Genau wie zuvor sollten Sie onSaveInstanceState () verwenden, um alle Daten zu speichern, die Sie benötigen, um Ihre Aktivität später im gleichen Zustand wie zuvor wiederherzustellen.

Ich empfehle auch, zu lesen Die Android ViewModel-Architekturkomponente ist gefährlich .

    
Ziem 30.05.2017, 10:30
quelle