Insbesondere ist meine Frage: Was ist das Speichermodell für Android-Anwendungen? Warum muss ich Daten über Aktivitäten von einer Aktivität zu einer anderen Aktivität leiten? Hat der gesamte Anwendungsprozess keinen gemeinsamen Speicher? Ich wäre dankbar für irgendwelche guten Quellen dazu im Web!Warum müssen Android-Aktivitäten Daten in Intent-Extras weitergeben?
Antwort
Die typische Anwendung ist in einem Prozess, aber wie bei jeder Java-Anwendung haben die verschiedenen Objekte/Klassen in der Anwendung ihre eigenen Zugriffsbeschränkungen. Jede Aktivität ist eine separate Klasse und es ist keine gute Idee, alles öffentlich zu machen, also gibst du das weiter, was du brauchst.
Ein weiterer Grund ist, dass Sie manchmal eine andere Aktivität starten möchten und nicht möchten, dass die erste Aktivität im Speicher verbleibt. So kann der Erste weitergeben, was er braucht und dann zerstört werden.
Zunächst müssen Sie eine Aktivität starten, um eine Aktivität zu starten. Nutzen Sie also die Vorteile und übergeben Sie die Daten mit der Absicht.
Über den gemeinsamen Speicher gibt es in Android eine Schnittstelle namens SharedPreferences, mit der Sie wichtige Daten speichern und darauf zugreifen können, als wäre es eine HashMap. Sie können Daten wie folgt speichern:
Editor tEditor = SharedPreferences.edit(); tEditor.putString("key", "value"); tEditor.apply();
Und dann können Sie die gespeicherten Daten wie folgt abrufen:
SharedPreferences.getString("key", "");
Sie können etwas mehr über die SharedPreferences studieren here
- 1. Wie kann ichActivityResult-Daten in Aktivität weitergeben?
- 2. eines Parameters zusammen mit h weitergeben müssen: command
- 3. Empfangen Fehler beim Versuch Nachricht an background.js weitergeben müssen:
- 4. Wie Daten zu meinem Klick Zuhörer weitergeben
- 5. Vertx: erste Daten an vertikales Deployment weitergeben
- 6. Router reagieren, Daten bei programmatischer Navigation weitergeben?
- 7. Müssen Daten binden
- 8. Warum 'Ansichten' repliziert werden müssen?
- 9. Warum müssen wir kafka Daten zu Apache Funken
- 10. Daten zwischen Controllern weitergeben, die nicht voneinander abhängen sollten
- 11. Wie kann ich Daten an Libcore auf Android weitergeben?
- 12. Redux mapDispatch ToProps. Welche Daten soll ich als Argument weitergeben?
- 13. Daten vom CollectionView-Delegaten an einen anderen ViewController weitergeben
- 14. Unverzerrte Daten von Flash-App an Server weitergeben?
- 15. Berechtigungen für Javascript weitergeben
- 16. Anmelde-Cookie umleiten oder Daten per POST weitergeben?
- 17. Angehängte Eigenschaftenvererbung zum Weitergeben
- 18. Warum würden Sie "Null" an "Anwenden" oder "Anrufen" weitergeben?
- 19. Warum müssen wir vor() warten()?
- 20. Warum Linux-Treiber kompilieren müssen?
- 21. Vorlage in C++, warum Enum verwenden müssen
- 22. Warum müssen Tabellennamen in Laravel plural sein?
- 23. URI zu groß, POST-Daten weitergeben, ohne dies zu ändern?
- 24. Müssen kontinuierlich serielle Daten in Python überwachen
- 25. Warum müssen Setuptools Bytecode schreiben?
- 26. warum alle Ausnahmeklassen müssen serializable
- 27. Warum müssen/müssen UI-Frameworks single-threaded sein?
- 28. Python: urllib2.urlopen (URL, Daten) Warum müssen Sie urllib.urlencode() die Daten?
- 29. Kann Cloud Foundry Chaincode an BlueMix weitergeben
- 30. Benutzernamen und Passwort an svcutil.exe weitergeben?