1. Wir haben diesmal 2 Gewinnspiele zeitgleich für euch - Gewinne einmal ein UMI Plus E - Beim 2ten könnt ihr ein Nomu S30 gewinnen!
  1. enrem, 12.11.2010 #1
    enrem

    enrem Threadstarter Erfahrener Benutzer

    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

    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

    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

    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