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

Kann eine statische Klasse von Android beendet werden?

Das Thema "Kann eine statische Klasse von Android beendet werden?" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 03.02.2012, 09:49   #1 (permalink)
Fortgeschrittenes Mitglied

Modell: HTC Sensation

Registriert seit: 31.08.2011
Beiträge: 390
Abgegebene Danke: 25
Erhielt 59 Danke für 57 Beiträge
Frage Kann eine statische Klasse von Android beendet werden?

Hallo,

mir ist gerade kein besserer Titel eingefallen, aber mich würde es mal interessieren, ob Android auch eine statische Klasse beenden (destroyen) kann?

Bei einer Activity ist es klar, wenn sie im Hintergrund liegt, dann gehts in onPause und evtl. auch in onDestroy (z.B. Speichermangel).

Ich habe eine statische Klasse, in der ich z.B. den eingeloggten Benutzer vorhalte und noch andere Einstellungen. Diese statische Klasse ist aber keine Activity, sondern einfach ne Standard-Java Klasse (public class). Kann es sein, daß Android auch diese statische Klasse bei Speichermangel beendet oder kann das nicht vorkommen?

Ein Tester hatte nämlich gestern einen Absturz der Anwendung und ich konnte sehen, daß es beim Zugriff auf eine statische Methode passiert ist. Aber eigentlich sollte dieser Wert immer gefüllt sein. Kann mir deshalb nur erklären, daß die Klasse beendet wurde?


Gruß,
Tom
Tom299 ist offline   Mit Zitat antworten
Alt 03.02.2012, 09:53   #2 (permalink)
Android Guru
 
Benutzerbild von TheDarkRose

Modell: Samsung Galaxy S (I9000)

Registriert seit: 20.08.2010
Beiträge: 1.078
Abgegebene Danke: 424
Erhielt 517 Danke für 377 Beiträge
Standard AW: Kann eine statische Klasse von Android beendet werden?

Wo wird die Klasse referenziert?
__________________
Abimus - a new experience
business solutions - managed services - managed vServer
TheDarkRose ist offline   Mit Zitat antworten
Alt 03.02.2012, 09:57   #3 (permalink)
Ehren-Mitglied
 
Benutzerbild von Kranki

Modell: Nexus One

Registriert seit: 19.07.2009
Beiträge: 4.329
Abgegebene Danke: 127
Erhielt 1.372 Danke für 871 Beiträge
Kranki eine Nachricht über ICQ schicken
Standard AW: Kann eine statische Klasse von Android beendet werden?

Unter Android hat jede App ihre eigene VM. Ich würde erwarten, dass diese beim Beenden der App ebenfalls komplett beendet wird.
__________________
CyanogenMod 7 Nightly - AmonRa Recovery 2.0 - Nexus One
Kein Support via PN und E-Mail. Bitte das Forum nutzen.
"Es ist Mode geworden, die Freiheitsrechte des Bürgers in den Mittelpunkt zu stellen." - Siegfried Kauder
Kranki ist gerade online   Mit Zitat antworten
Alt 03.02.2012, 09:59   #4 (permalink)
Fortgeschrittenes Mitglied

Modell: HTC Sensation

Registriert seit: 31.08.2011
Beiträge: 390
Abgegebene Danke: 25
Erhielt 59 Danke für 57 Beiträge
Standard AW: Kann eine statische Klasse von Android beendet werden?

Hmm, da alle Methoden und Attribute statisch sind, gibt es auch keinen Konstruktor. Und zugegriffen wird eigentlich von nahezu allen Activities, die ich habe.

Wäre es sinnvoll, nen Singleton draus zu machen?
Tom299 ist offline   Mit Zitat antworten
Alt 03.02.2012, 10:22   #5 (permalink)
Fortgeschrittenes Mitglied

Modell: HTC Sensation

Registriert seit: 31.08.2011
Beiträge: 390
Abgegebene Danke: 25
Erhielt 59 Danke für 57 Beiträge
Standard AW: Kann eine statische Klasse von Android beendet werden?

Zitat:
I would avoid using Static variables in Android, because Android often clears all Static data from your class if your app is paused and the phone is short on resources, leading to unexpected Null Pointer Exceptions. Search Google for "Android Static Null" for a better explanation.

Either ways (Static methods or Singletons), you should make sure your app has the ability to save state and restore it in case Android clears your static variables.
- java - android singleton vs static methods - Stack Overflow
- Android : Static variable null on low memory - Stack Overflow

Sieht dann wohl so aus, als würde genau das bei mir Eintreten, die statischen Werte werden gelöscht / null und später greife ich wieder darauf zu.
Die Frage ist jetzt, muß ich in JEDER Activity beim onPause meine statischen Werte in den SharedPrefs speichern? Oder gibts nen besseren Ansatz, wo man dies machen könnte / sollte?
Tom299 ist offline   Mit Zitat antworten
Alt 03.02.2012, 11:50   #6 (permalink)
Ehren-Mitglied
 
Benutzerbild von Kranki

Modell: Nexus One

Registriert seit: 19.07.2009
Beiträge: 4.329
Abgegebene Danke: 127
Erhielt 1.372 Danke für 871 Beiträge
Kranki eine Nachricht über ICQ schicken
Standard AW: Kann eine statische Klasse von Android beendet werden?

Das kommt jetzt drauf an, was das für Daten sind. Wenn du die rein aus der Klasse heraus ohne weitere Informationen statisch initialisieren kannst dann solltest du das sowieso machen. Dann werden die auch wieder befüllt, wenn die Klasse wieder geladen wird.
Wenn du Informationen aus der laufenden Activity brauchst, dann musst du die natürlich sichern.
__________________
CyanogenMod 7 Nightly - AmonRa Recovery 2.0 - Nexus One
Kein Support via PN und E-Mail. Bitte das Forum nutzen.
"Es ist Mode geworden, die Freiheitsrechte des Bürgers in den Mittelpunkt zu stellen." - Siegfried Kauder
Kranki ist gerade online   Mit Zitat antworten
Alt 03.02.2012, 11:55   #7 (permalink)
Fortgeschrittenes Mitglied

Modell: HTC Sensation

Registriert seit: 31.08.2011
Beiträge: 390
Abgegebene Danke: 25
Erhielt 59 Danke für 57 Beiträge
Standard AW: Kann eine statische Klasse von Android beendet werden?

Bis auf den eingeloggten User sind alle Daten innerhalb der statischen Klasse initialisiert, die sind auch kein Problem. Nur beim User knallts ;-)

Bin jetzt auch dran, den Benutzer in den SharedPrefs zu speichern. Problem ist aber, daß mir der Context in der statischen Klasse fehlt. Ohne Context komm ich nicht auf die SharedPrefs. Ich möchte aber, daß die statische Klasse selbst den User aus den SharedPrefs lesen kann und nicht über eine Activity mittels Context ... Dafür hab ich momentan noch keine Lösung gefunden, vielleicht fällt mir ja noch was ein ...
Tom299 ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
Wie eine statische IP eingeben? Rockbass Cat Nova Forum 4 13.12.2011 23:48
Filehoster Download kann nicht beendet werden Sven4 Huawei Ideos X3 (U8510) Forum 7 12.11.2011 18:12
android.prozess.launcher muss beendet werden?!? MukuFuk Motorola Milestone Forum 4 19.08.2011 18:41
Download kann nicht beendet werden naj00 Android Allgemein 7 19.09.2010 19:40
TabHost von Klasse auf andere Klasse zugreifen Tai Android App Entwicklung 9 11.06.2009 17:03




Du liest gerade: "Kann eine statische Klasse von Android beendet werden?" 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.