Brauche Hilfe beim Speichern von Texten in meiner App

  • Antworten:8
Jordi Müller
  • Forum-Beiträge: 29

14.06.2016, 18:29:43 via Website

Hallo liebe Community, ( ich programmiere mit Android Studio)
ich habe eine Frage mit der ich mich schon seit langem beschäftige und einfach nicht gelöst kriege. Ich suche eine Möglichkeit
die in meiner App eingegebenen Texte ( Notizen-App) zu speichern, das heißt das sie beim schließen der App noch da stehen
wo sie eingetippt wurden.
Im Internet gibt es viele Videos darüber, jedoch ist dort nur das Speichern mithilfe eines "Speichern" und "Laden" Buttons erklärt
und hilft mir nicht wirklich weiter, da mein Ziel ist es automatisch speichern zu lassen.
Gibt es da eine Möglichkeit?

Vielen Dank im Voraus für eure Unterstützung!!!

— geändert am 14.06.2016, 18:30:52

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

14.06.2016, 19:55:24 via Website

Hallo Jordi,
es gibt da meherere Möglichkeiten:
Zum ersten:
Du musst das speichern immer beim schließen der App (onPause/onDestroy) ausführen (automatisch)

Speichertyp musst du selber estlgen.
Da wäre z.b. die SharedPreferences oder eine DB oder ein simpler Textfile der irgendwo im Filesystem gespeichert wird.

Wenn du dich für eine Sache entschieden hast, kannst du das dann umsetzen :)

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Jordi Müller
  • Forum-Beiträge: 29

14.06.2016, 20:18:29 via Website

Vielen Dank erstmal,
weißt du wie z.B. die Notizen App von Samsung programmiert wurde bzw. mit welchem Speicherprinzip?

Vielen Dank für deine Hilfe!!
LG

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

14.06.2016, 20:22:17 via Website

Wissen tu ich das nicht, aber das tut auch ncihts zur Sache.
Im endeffekt nimmst du das, bei dem du denkst das ist das einfachste und und das beste für dich

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Gelöschter Account
  • Forum-Beiträge: 11

14.06.2016, 21:17:08 via Website

Hallo,

du kannst Dir auch einen TimerThread bauen und alle X sekunden es selbstständig wegschreiben...

lg
Stefan

Antworten
pepperonas
  • Forum-Beiträge: 434

14.06.2016, 22:52:47 via Website

Das über einen Timer zu machen ist absoluter Quatsch. Bitte nicht machen!
Gründe: es ist unsauber, da eine zeitliche Variable entscheidet, ob etwas gespeichert wird oder verloren geht. Für den Nutzer sieht das am Ende aus, als wenn die App macht was sie gerade will (Prinzip "Zufall"). Darüber hinaus muss sich das System um einen Thread mehr kümmern und das kostet je nach Menge der Inhalte Performance und das übrigens auch, wenn keine Änderungen am Text vorliegen und das Speichern unnötig ist, da es zu diesem Zeitpunkt schon gespeichert war. Und so verbraucht man dann noch massig Rechenleistung bei unnötigen Lese und Schreibzugriffen. Vermutlich sind >95% der Lese und Schreibzugriffe unnötig. Wenn das jede App so machen würde, bräuchte ein Smartphone einen Gehäuselüfter vom Desktop-PC und Akkulaufzeiten befänden sich bestenfalls im einstelligen Minutenbereich. oO

Mein Vorschlag:
Einen TextWatcher nutzen und nur dann speichern, wenn Bedarf besteht, also wenn Änderungen am Text vorliegen. Oder einfach in onPause (dieser Aufruf wird vom System garantiert und wird IMMER ausgeführt).

Wie man nun die Daten speichert (SharedPreferences oder in einer Datenbank), das kommt auf Inhalt und vor allem Menge, sowie Häufigkeit der Zugriffe an. Bei größeren Datensätzen (vielleicht 100 oder mehr? kA...) kommt man um eine Datenbank nicht herum ohne dass es zu einem katastrophalem Durcheinander im Code und den Datensätzen kommt.

Vielleicht mal ganz am Rande: Warum nicht erstmal mit Java klar kommen, bevor man in Android einsteigt? Ihr tut euch meiner Meinung nach selbst keinen Gefallen, da die Lernkurve in Java deutlich steiler ist als in Android mit seinen 1000 kleinen Sonderfällen.

Open Source

Antworten
Jordi Müller
  • Forum-Beiträge: 29

15.06.2016, 16:11:05 via Website

Vielen Dank für eure Hilfe,
habe mich nun auch mit Java vertraut gemacht und hab nun das ganze Prinzip verstanden.
Vielen Dank!
Lg

Antworten
Jordi Müller
  • Forum-Beiträge: 29

15.06.2016, 17:01:15 via Website

Was ist der Unterschied zwischen SharedPreferences und einer Datenbank?

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

15.06.2016, 17:07:30 via Website

Vielleicht solltest du dich wirklich nochmal mitden Grundlagen auseinandersetzen ;)

Die Shartedpreferences sind/ist eine von Android/deiner App verwaltete XML Datei in der du Werte speichern und zu einem Späteren Zeitpunkt wieder auslesen kannst. Das basiert auf eine "Key"->"Value" zuordnung, d.h. um einen Wert zu lesen musst du den Key/Schlüssel wissen mit welchem es abgespeichert wurde.

Eine Datennbank kannst du dir mehr als Excel Datei vorstellen, natürlich ist es das nicht, aber im Endeffekt besteht eine Datenbank aus mehereren Tabellen indenen die Daten stehen. Mit SQL Statements oder in Android einem SQL Helper kannst du dann die DAten filtern und verarbeiten.
Aber ich glaube, die SharedPreferences sind für den Anfang für dich besser geeignet. Im nachhinein kannst du immernoch auf eine DB umsteigen.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten