我编写了一个小应用程序,显示从Google地图(API v2)上的MySQL数据库下载的一些信息。
到目前为止,我只是问我的服务器并偶尔使用AssyncTask更新我的地图,但现在我希望我的地图能够动态更新,因此我必须实时向我的服务器发出请求#34; ;。所以我认为我应该使用一个在循环中请求我的数据库的线程。
我尝试编写我自己的Thread(简化版),但也许我做错了,因为它没有工作:
public class loadMessages extends Thread {
String messages[];
public void run() {
try{
while(zoomActuel > 13){
messages = myHttpRequest(); //simplified fonction to fetch info in my DB
runOnUiThread(new Runnable() {
public void run() { //i update my map by updating my ArrayList<Marker> called myMarkers
for (int i = 0; i < messages.length; i++) {
myMarkers.add(googleMap.addMarker(new MarkerOptions()
.position(new LatLng(lat[i], lng[i]))
.title(messages[i])));
}
}
});
}
}catch(Exception e){
e.printStackTrace();
}
}
}
如果有人知道我应该如何做到这一点,请提前感谢;)
答案 0 :(得分:1)
我认为这些教程会对您有所帮助。
您可以使用asynctask并更新ui onProgressUpdate()或onPostExecute(),您可以使用runnableOnUiThread或带有处理程序的线程。
http://www.vogella.com/tutorials/AndroidBackgroundProcessing/article.html
http://examples.javacodegeeks.com/android/core/os/handler/android-handler-example/