1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Hilfsklasse für übergreifende Werte

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von enrem, 12.11.2010.

  1. enrem, 12.11.2010 #1
    enrem

    enrem Threadstarter Erfahrener Benutzer

    Beiträge:
    188
    Erhaltene Danke:
    13
    Registriert seit:
    17.01.2010
    Hallo,

    ich habe eine Klasse AppVar realisert.

    Code:
    public class AppVar {
    
        private static String mVolt = "?";
    
        public static String getVolt() {
            return mVolt;
        }
    
        public static void setVolt(String mVolt) {
            AppVar.mVolt = mVolt;
        }
        
    }
    
    Diese möchte ich nutzen, um überall und zur jeder Zeit die aktuelle Voltzahl (erhalte ich von einem Messgerät über Bluetooth) zu aktualisieren.

    In verschiedenen Klassen und Activitys verwende ich diesen Aufruf:

    Code:
    AppVar.setVolt(volt);
    Kann mir jemand sagen, ob es eine bessere Lösung gibt und ob es mit meiner Methode möglicherweise Probleme geben kann?

    Ich vermute, dass durch die Deklaration static die Variable mVolt der Klasse AppVar ständig im Speicher zur Verfügung steht. Ist das richtig oder kann diese von Android irgendwann zerstört werden.

    Vorab besten Dank,

    gruß enrem
     
  2. funcoder, 13.11.2010 #2
    funcoder

    funcoder Erfahrener Benutzer

    Beiträge:
    218
    Erhaltene Danke:
    38
    Registriert seit:
    15.08.2009
    Prinzipiell ist dein Code ok, aber aufgeräumt bzw. "zerstoert" werden kann nur das worauf zur Laufzeit keine Referenz mehr besteht. Eine statische Klassenvariable dürfte aber (ich kann mich auch irren) zur Laufzeit immer bestehen bleiben bzw. wird von der Garbage Collection nicht aufgeräumt(Solange dein App läuft)

    Allerdings bietet dir Android die Klasse "android.app.Application" die es dir erlaubt über mehrere Activitys hinweg Werte global zu speichern: Weitere Infos dazu
     
  3. enrem, 13.11.2010 #3
    enrem

    enrem Threadstarter Erfahrener Benutzer

    Beiträge:
    188
    Erhaltene Danke:
    13
    Registriert seit:
    17.01.2010
    Danke funcoder!

    ich verstehe zwar nich warum Android das über eine eigene Klasse anbietet, es wird wahrscheinlich jedoch sinnvoller sein diese zu verwenden.

    Ich versuche mal mehr darüber zu erfahren. Nochmals danke!!!
     
  4. funcoder, 13.11.2010 #4
    funcoder

    funcoder Erfahrener Benutzer

    Beiträge:
    218
    Erhaltene Danke:
    38
    Registriert seit:
    15.08.2009
    Du hast Recht enrem, ein wirklicher Unterschied ob du jetzt dies über die Application Klasse bzw. über ein herkömmliche statische Variable machst ist nicht vorhanden. Du greifst jediglich auf das Android Framework zurück und hast dadurch eine nette Integration. :) Nicht mehr und auch nicht weniger

    funcoder
     
    enrem bedankt sich.

Diese Seite empfehlen