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

A

Artwork

Ambitioniertes Mitglied
10
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
 
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:
  • Danke
Reaktionen: Artwork
Also wenns Strings sind String1.equals(string2) verwenden..
 
danke beide tipps haben geholfen, es funktioniert
 

Ähnliche Themen

Laser5001
Antworten
3
Aufrufe
646
swa00
swa00
M
Antworten
3
Aufrufe
146
moin
M
C
Antworten
8
Aufrufe
1.122
swa00
swa00
Zurück
Oben Unten