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

Eine Sache nur dann ausführen wenn sich der Standort/Stadt ändert

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Artwork, 18.08.2010.

  1. Artwork, 18.08.2010 #1
    Artwork

    Artwork Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    84
    Erhaltene Danke:
    8
    Registriert seit:
    29.07.2010
    Phone:
    T-Mobile G1
    Hi,

    ich habe ein porblem. und zwar bekomme ich alle 5 sekunden ein standtort update.

    in abhängigkeit vom standort werden dann daten aus dem web geladen.

    dies soll nur beim ersten update und danach nur dann wenn sich die stadt in der man ist ändert getan werden.

    Code:
    Handler myViewUpdateHandler = new Handler(){
    		 
            public void handleMessage(Message msg) {
                    switch (msg.what) {
                    case UPDATE_LOCATION:
                    	
                           //hier wird die aktuelle stadt abgefragt und das feld currentCity gestetzt
    	               if(trigger && (currentCity != "")){
    	            	   firstCity = currentCity;
    	            	   trigger = false;
    	               }
    	               
    	              //hier sollen daten aus dem web geladen werden nur beim ersten update und dann immer wenn sich currentCity von der City aus dem ersten update also firstCity unterscheidet
        
                   }
    
                    super.handleMessage(msg);
           }
    };
    
    ich hab schon versucht etwas mit variablen rumzuspielen, hat aber nicht geklappt
     
  2. FelixL, 18.08.2010 #2
    FelixL

    FelixL Ehrenmitglied

    Beiträge:
    4,855
    Erhaltene Danke:
    754
    Registriert seit:
    26.11.2009
    Phone:
    Wileyfox Swift, HTC One M8
    Ich kapiere deinen Code nicht...
    1) Wofür steht trigger/was ist seine Funktion?
    2) Wo überprüfst du ob die Städte gleich sind?

    Code:
    case UPDATE_LOCATION:
                    	
    	               if(currentCity != ""){
    	               	   if(firstCity != currentCity){//Städte sind nicht gleich, Aktion soll ausgeführt werden
    	            	   	   firstCity = currentCity;
    	            	   	   loadMyData(); //In dieser Funktion werden dann die weiteren Schritte gemacht.
    	               	   }
    	               }
    
    Dabei musst du nicht unbedingt loadMyData() als eigene Funktion machen, kannst es auch einfach dort in die if-Klammer reinschreiben, sollte klar sein.
    Ausserdem sollte beim initialisieren firstCity auf "" gesetzt werden, damit currentCity beim ersten mal anders ist und somit die Aktion ausgelöst wird.
    Vielleicht muss du auch firstCity und Currentcity anders vergleichen als mit einem == oder !=.
    Gibt dafür ja auch Funktionen, ich gehe mal davon aus das das Strings sind?
    Wenn das oben nicht geht kannst du das hier versuchen:

    if(0 != firstCity.compareTo(currentCity)){
     
    Zuletzt bearbeitet: 18.08.2010
    Artwork bedankt sich.
  3. Fr4gg0r, 18.08.2010 #3
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Beiträge:
    2,506
    Erhaltene Danke:
    447
    Registriert seit:
    21.12.2009
    Also wenns Strings sind String1.equals(string2) verwenden..
     
  4. Artwork, 18.08.2010 #4
    Artwork

    Artwork Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    84
    Erhaltene Danke:
    8
    Registriert seit:
    29.07.2010
    Phone:
    T-Mobile G1
    danke beide tipps haben geholfen, es funktioniert
     

Diese Seite empfehlen