it-swarm.com.de

Was ist der Hauptvorteil und -nachteil von "Aktivitäten nicht behalten" in Android

Eine Frage, die ich gerne hätte, wenn jemand darauf antworten könnte: Do not keep activities-Optionen, die beim Testen der Android-Mobilanwendung anhand der Entwickleroptionen geprüft werden sollen.

Ich habe es in meiner Anwendung verwendet und festgestellt, dass sich meine Anwendung unangemessen verhält und abstürzt, als ich Do not keep activities in Android einschaltete.

Meine Fragen waren wenige:

1: How much this option will affect mobile applications?

2: What exactly does this do?

Es klingt wie ein App-Killer. Ich stelle fest, dass in den Entwickleroptionen ein Kästchen mit der Aufschrift Keine Aktivitäten - destroy every activity as soon as the user leaves it angezeigt wird.

Erzeugt dies positive oder negative Funktionen in meinen Apps?

Bedeutet das, wenn ich eine App öffne und sobald ich sie verlasse, diese App tatsächlich geschlossen wird und ich sie nicht im Task-Manager sehe, um sie manuell zu beenden? Wenn ja, ist dies nicht eine gute Sache, um die Verwendung von RAM niedrig zu halten?

Was waren die Vor- und Nachteile der Verwendung von Do not keep activities? Teilen Sie bitte die Erfahrung mit.

Wie stark wirkt sich diese Option auf mobile Anwendungen aus?

Wenn sie gut geschrieben sind, wirkt sich diese Option nicht auf sie aus.

Was genau macht das?

Wenn Sie diese Option aktiviert haben, werden nur Variablen gespeichert, die in der Methode onSaveInstanceState Gehalten werden, wenn Sie zu einer anderen Aktivität wechseln oder die App im Hintergrund läuft. Alle anderen Variablen werden sofort entfernt. Wenn diese Option deaktiviert ist, besteht die Möglichkeit, dass diese Variablen beibehalten werden

Bedeutet das, wenn ich eine App öffne und sobald ich sie verlasse, diese App tatsächlich geschlossen wird und ich sie nicht im Task-Manager sehe, um sie manuell zu beenden?

Nein, es werden alle nicht verwahrten Variablen entfernt. Wenn Sie im Beispiel die Home-Taste drücken.

Erzeugt dies positive oder negative Funktionen in meinen Apps?

Nein, es hilft nur, die Anwendung richtig zu entwickeln. Es hilft, unerwartete Situationen vorherzusagen.

11
Adam Radomski

"Keine Aktivitäten unterhalten" ist eine reine Entwickleroption, mit der Sie überprüfen können, ob

  1. Sie haben den Status der Aktivität gespeichert, bevor sie in den Hintergrund wechselt.

2. HANDLED NIEDRIG Speicher Situations RICHTIG (in diesem Fall die Aktivität zerstört wird). ̶

Edit : Diese Option emuliert keine Situationen mit wenig Arbeitsspeicher. Wenn auf dem Gerät nur wenig Speicherplatz vorhanden ist, fordert das System die Aktivität möglicherweise zum Ablegen auf, indem Sie Finish () aufrufen, oder der Prozess wird vollständig abgebrochen, wie der Kommentar sagt.

Es ist immer noch gut, diese Option zu aktivieren. Sie müssen die Methoden onSaveInstanceState() und onRestoreInstanceState() ordnungsgemäß codieren. Wenn der Benutzer zu dieser Aktivität zurückkehrt, wird onCreate () selbst dann aufgerufen, wenn der Prozess abgebrochen wird, und der Parameter saveInstanceState wird in der onSaveInstanceState(Bundle)-Methode gespeichert.

3
Siddharth N

VORTEIL :

Entwickler können das abnormale Verhalten ihrer Anwendung überprüfen und die Fälle von low memory - framework kills the application beheben.

NACHTEIL:

Wenn der Benutzer diese Option unwissentlich aktiviert hat, arbeitet das Gerät langsam, und alle Aktivitäten werden in der Benutzernavigation auf seinem Gerät neu erstellt. Dies behindert die Arbeit des Benutzers

Eine sehr gute Antwort finden Sie im xda-Entwicklerforum zur Verwendung dieser Option

1
Kushal

Als Zusatz zu den obigen Antworten ist eine weitere, nicht auf den ersten Blick sichtbare Nachteil, dass Sie mit dieser Option nur only-Aktivitäten beim Zerstören/Wiederherstellen von Problemen testen können, nicht jedoch den gesamten Vorgang der Anwendungswiederherstellung aufgrund von Speichermangel oder andere Systembedingungen, da alle unabhängig vom Aktivitätsspeicher bleiben.

Stellen Sie sich vor, Sie haben ein Singleton, von dem Ihre Klassen abhängig sind. Nachdem das System die App beendet hat, werden Ihre Singletons auch gelöscht und mit dem Anfangsstatus wiederhergestellt, falls Sie die Wiederherstellung nicht selbst vorgenommen haben. Trotz des Status der Aktivitätsansicht würden die Felder wiederhergestellt, falls onSaveInstanceState & onRestoreInstanceState korrekt implementiert wurde. Dies garantiert nicht das korrekte Verhalten der App nach dem Wiederherstellen, selbst auf dem jeweiligen Bildschirm. Das sollte bedacht werden

Um einen solchen vollständigen Fall zu testen, sollten Sie die Anwendung manuell stoppen, aber nicht aus dem Task-Manager löschen. Am einfachsten - mit dem roten Quadrat in Android-Studio. Und öffne die App erneut. 

Mehr sehen

0
Beloo