German Message während Wetterabruf ?

Paulsche

Well-Known Member
Licensed User
Longtime User
Ich benutze die Library "ICOSweater" um die aktuelle Tageshöchst-Temperatur abzurufen, das klappt auch wunderbar.
nu dauerst das Abrufen je nach Empfangsstärke zwischen 3 und 15 Sekunden.

Ich möchte während des abrufens eine Message z.B. "Temperatur wird gesucht!" zeigen lassen, das klappt aber nicht. Sogar ein Labeltext vor Abrufen
zeigen lassen geht nicht, das Abrufen blockiert alles ab.

B4X:
Sub Temperaturload   'Temperatur aus Internet abrufen
   Try
      wetter.SetCityName                = LBL03dat_Stadt.Text   'Temperatur abrufen
      LBL03dat_Temperatur.Text         = wetter.GetHighTemp(0)
      LBL03Temperatur_Status.TextColor    = Colors.rgb(0,125,0)   ' Dunkelgrün
      LBL03Temperatur_Status.Text         = "Temperaturübertragung erfolgreich !"
   Catch   'Wenn keine Datenverbindung möglich
      LBL03Temperatur_Status.TextColor    = Colors.Red
      LBL03Temperatur_Status.Text         = "Keine Temperaturübertragung möglich !"
      LBL03dat_Temperatur.Text         = "0"
   End Try
End Sub

Ich habe schon versucht mit "Toastmessageshow", Doevents, Timer,
nichts funktioniert. Weiß jemand eine Lösung ?
 

corwin42

Expert
Licensed User
Longtime User
Ein ähnliches Problem hatte ich, als ich mit der GeoCoder Library Abfragen gemacht habe. Das Problem ist wohl, dass der call im GUI-Thread gemacht wird und da dann gar nichts mehr geht. Ich habe es zwar geschafft, ein ProgressDialog Popup zu öffenen, allerdings war darin der Kreis auch nicht mehr animiert. D.h. es sah so aus, als wenn das Handy eingefroren wäre.

Abhilfe hat ein eigener Thread (mit agrahams Threading library) geschaffen. Du musst die Wetterabfrage in eine eigene Sub packen und dann mit Thread.Start() starten. Wenn die Abfrage dann fertig ist und die Sub beendet wird, wird Thread_Ended aufgerufen und darin kannst Du dann auf die Wetterdaten (die in einer globalen Variablen gespeichert werden sollten) zugreifen. Ist eigentlich ganz einfach.
 

Paulsche

Well-Known Member
Licensed User
Longtime User
Hat mit der Thread-Library wunderbar funktioniert.
 
Top