2016-05-14 13 views
2

Ich versuche eine App zu erstellen, die alle x Sekunden eine Markierung aktualisieren muss. Ok ich habe es schon geschafft. Hier ist der Code in meiner onCreate Methode:Java Update Marker von einer Google Map

h = new Handler(); 

     h.postDelayed(new Runnable(){ 
      public void run(){ 

       atualizaMapa(); 

       h.postDelayed(this, delay); 
      } 
     }, delay); 

Das Problem ist: Wenn ich die Google-Karte bin mit und eine Markierung ziehen oder wenn ein infowindow geöffnet wird, geht der Prozess zu bekommen ist eine wenig Sperre (x Sekunden I put) und danach kann ich den Marker normal ziehen und nach 10 Sekunden wird er wieder gesperrt ... nach 10 Sekunden immer wieder gesperrt ... Ich habe alles versucht, aber keinen Erfolg. Jemand könnte mir bei diesem Problem helfen? meine WebService

Der Marker aktualisiert wird auf atualizarMapa(), diese Methode Zugang und eine Json Antwort erhalten ...

Antwort

0

Mit postDelayed() Methode

bewirkt, dass die Runnable r zu der Nachricht hinzugefügt werden Warteschlange, um zu sein, läuft nach der angegebenen Zeit verstreicht. Das ausführbare Programm wird auf dem Thread ausgeführt, mit dem dieser Handler verbunden ist. Die Zeitbasis ist uptimeMillis(). Die Zeit im Tiefschlaf erhöht die Ausführungszeit zusätzlich.

Obendrein,

Bei Anschluss an ein Handler veröffentlichen oder zu senden, können Sie entweder die Möglichkeit, die Artikel so schnell verarbeitet werden, da die Nachrichten-Warteschlange bereit ist, dies zu tun, oder eine Verzögerung angeben bevor es verarbeitet wird oder absolute Zeit für die Verarbeitung. Mit den letzten beiden können Sie Timeouts, Ticks und andere zeitbasierte Verhaltensweisen implementieren.

Die von Ihnen verwendete Methode wirkt sich auf das Verhalten Ihrer App oder Nachrichtenplanung aus.

+0

Was könnte ich tun, um dieses Problem zu beheben? Ich realisierte eine andere Sache, wenn ich die Methode setPosition, nur diesen Befehl in meiner App, es wird nicht eine Verzögerung und nicht Bremse, aber wenn ich eine Daten mit dem Befehl alle x Sekunde, es bremst die Anwendung. –

+0

Gibt es eine andere Möglichkeit, jede x Sekunde auszuführen, um meine Markierungen in Google Maps zu aktualisieren? eine Methode, die die App nicht bremst? –

+0

Ich denke, ich habe einen Thread hinzugefügt, um dies zu tun? und ich muss wissen, wann der Prozess beendet ist? etwas wie das? –