Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

Wann Daten speichern, wenn Programm beendet wird?

Das Thema "Wann Daten speichern, wenn Programm beendet wird?" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 20.04.2009, 23:31   #1 (permalink)
Android Experte
 
Benutzerbild von GMoN

Modell: Motorola Atrix 4G / XOOM 3G Huawei MediaPad / Nexus One

Registriert seit: 01.02.2009
Beiträge: 913
Abgegebene Danke: 73
Erhielt 86 Danke für 62 Beiträge
GMoN eine Nachricht über ICQ schicken
Frage Wann Daten speichern, wenn Programm beendet wird?

Android bringt mich gerade zur Verzweiflung.

Und zwar möchte ich, bevor der User das Programm mit dem Back Button die Anwendung beendet, die gesammelten Daten in eine Textdatei speichern. Wo und wann muss ich die Speicher Methode aufrufen? Das Problem ist, dass Speichern dauert ca. 6 Sekunden, es sind also mehrere MB, die auf die SD geschrieben werden müssen. Ich habe es in onDestroy, onStop und onPause versucht. Alle drei werden aber i.d.R. vorzeitig von Android beendet, Android wartet mit dem Schließen meiner Activity also nicht, bis das File auf die SD Karte geschrieben ist. So ist es dann meist nur 0 Byte groß

Wie fange ich den diesen Back Button ab um vorher in Ruhe speichern zu können?
__________________
G-MoN Wardriving Tool für Android
G-MoN auf Twitter
Mein Blog über Android, Mac and more
GMoN ist offline   Mit Zitat antworten
Alt 21.04.2009, 01:54   #2 (permalink)
Android-Hilfe.de Mitglied

Registriert seit: 19.01.2009
Beiträge: 71
Abgegebene Danke: 7
Erhielt 6 Danke für 4 Beiträge
Standard AW: Wann Daten speichern, wenn Programm beendet wird?

Zitat:
Zitat von GMoN Beitrag anzeigen
Android bringt mich gerade zur Verzweiflung.
Aber nicht doch!

Zitat:
Zitat von GMoN Beitrag anzeigen
Und zwar möchte ich, bevor der User das Programm mit dem Back Button die Anwendung beendet, die gesammelten Daten in eine Textdatei speichern. Wo und wann muss ich die Speicher Methode aufrufen? Das Problem ist, dass Speichern dauert ca. 6 Sekunden, es sind also mehrere MB, die auf die SD geschrieben werden müssen. Ich habe es in onDestroy, onStop und onPause versucht. Alle drei werden aber i.d.R. vorzeitig von Android beendet, Android wartet mit dem Schließen meiner Activity also nicht, bis das File auf die SD Karte geschrieben ist. So ist es dann meist nur 0 Byte groß
Die normale Vorgehensweise wäre bei onPause zu speichern. Nur hier ist gewährleistet, dass die Methode aufgerufen wird. Bei 6 Sekunden Speichervorgang hätte ich eher erwartet, dass Android einen Dialog zum Beenden der Aktivität aufpoppt, weil es länger als erwartet dauert. Aber ausprobiert habe ich das nicht. Bist Du sicher, dass dein Save tatsächlich funktioniert? Mal reindebuggt?

Andere Frage: Warum streamst Du deine Daten nicht gleich in das File sobald neue Daten verfügbar werden? Wenn ich deine App richtig verstanden habe, sollte das gehen?

Zitat:
Zitat von GMoN Beitrag anzeigen
Wie fange ich den diesen Back Button ab um vorher in Ruhe speichern zu können?
Im View onKeyDown implementieren und im Falle vom Back true zurückgeben.
__________________
greenrobot.de - Android Apps & Services
K'UMPA - Android Game (ADC2 Finalist)
Markus ist offline   Mit Zitat antworten
Alt 01.07.2009, 15:42   #3 (permalink)
Android-Hilfe.de Mitglied

Modell: Samsung Galaxy I7500

Registriert seit: 26.05.2009
Beiträge: 127
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard AW: Wann Daten speichern, wenn Programm beendet wird?

Ich habe dazu mal eine ähnliche Frage. Wenn die onStart() aufgerufen wird, wird kurz danach die onResume() aufgerufen & beim zurück Button die wird die onPause() & danch die onDestroy(), ist das normal? Also eigentlich interessiert mich nur letzteres. Wird die Activity immer zerstört? Kann doch nicht sein.
joschika77 ist offline   Mit Zitat antworten
Alt 01.07.2009, 16:01   #4 (permalink)
Android Experte
 
Benutzerbild von GMoN

Modell: Motorola Atrix 4G / XOOM 3G Huawei MediaPad / Nexus One

Registriert seit: 01.02.2009
Beiträge: 913
Abgegebene Danke: 73
Erhielt 86 Danke für 62 Beiträge
GMoN eine Nachricht über ICQ schicken
Standard AW: Wann Daten speichern, wenn Programm beendet wird?

Zitat:
Zitat von joschika77 Beitrag anzeigen
Ich habe dazu mal eine ähnliche Frage. Wenn die onStart() aufgerufen wird, wird kurz danach die onResume() aufgerufen & beim zurück Button die wird die onPause() & danch die onDestroy(), ist das normal? Also eigentlich interessiert mich nur letzteres. Wird die Activity immer zerstört? Kann doch nicht sein.
Doch, ist nur ne Frage der Zeit. Mit dem Back Button schickst die Activity in den Hintergrund, genau wie mit dem Home Button. Und damit signalisierst Du Android, dass sie nicht mehr interessant ist. onPause kommt dabei sofort. der oom_adj geht dann hoch und je nachdem ob andere Activities jetzt viel Speicher brauchen entscheidet Android, wann onDestroy kommt und damit der Speicher komplett freigegeben wird.

Android geht davon aus, dass in Activities eigentlich nur die GUI drin ist und die braucht ja nicht im Speicher zu bleiben, wenn man sie eh garnicht mehr sieht.

Wenn Deine App auch noch was machen soll, während sie im Hintergrund ist, musst du dies zwangsläufig in einen Service auslagern. Das ist eine Besonderheit an Android, die man erstmal verstehen muss. Ich habe mich da auch lange vor gewehrt, da ich dies von Symbian so radikal auch nicht kannte. Aber da führt kein Weg dran vorbei.
__________________
G-MoN Wardriving Tool für Android
G-MoN auf Twitter
Mein Blog über Android, Mac and more
GMoN ist offline   Mit Zitat antworten
Alt 01.07.2009, 16:23   #5 (permalink)
Android-Hilfe.de Mitglied

Modell: Samsung Galaxy I7500

Registriert seit: 26.05.2009
Beiträge: 127
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard AW: Wann Daten speichern, wenn Programm beendet wird?

Gelesen hab ich von den Services auch schon. Werd ich wohl nicht dran vorbei kommen. Eine Frage hab i dazu noch. Ich muß immer in den überschriebenen Methoden das super... aufrufen sonst gibts ne Exception. Soll/Muß das so mit dem super?

Code:
    public void onStop()
    {
        Log.i(TAG,"onStop");        EGlobals.ShowMessage(main.this,"onStop",Toast.LENGTH_SHORT,Gravity.BOTTOM,0,0);
        super.onStop();
    }
joschika77 ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
W-Lan Verbindung wird immer beendet Joker45 T-Mobile G1 Forum 13 23.07.2009 21:48
aHome ? Wann endlich 1.5-fähig ? *V6* Sonstige Apps & Widgets 9 27.05.2009 17:55
[Suche] Programm um Daten per WLAN auf Handy zu speichern bexorn Tools 3 13.05.2009 17:10
Sim Checker, schickt Position per sms wenn gestohlen und simkarte gewechselt wird joschijoschi Kommunikation 6 06.04.2009 01:25
Wann kommt das T-Mobile G1 in Österreich auf den Markt? markus1515 T-Mobile G1 Forum 1 21.01.2009 12:01




Du liest gerade: "Wann Daten speichern, wenn Programm beendet wird?" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.