Ich habe eine Klasse, die MapActivity erweitert.Zeige Dialog und aktualisiere mapview overlay
Ich habe Pins, die ich auf der Karte platzieren eine Funktion namens updateMap.The Stifte an Orten platziert werden, basierend auf einer Liste von Bushaltestellen, die in geladen werden.
Ich mag würde einen Laden Dialog während zeigen Das Array der Stopps wird heruntergeladen, aber ich bekomme Fehler mit meinem Code. Ich habe gerade den Dialog auftauchen und einen Thread laichen, um die Busrouten zu laden und die Karte zu aktualisieren.
Nach einigen Recherchen habe ich festgestellt, dass die UI-Ebene nicht von einem separaten Thread aktualisiert werden kann. Ich habe versucht Dinge zu bewegen, aber nichts scheint zu funktionieren.
Jede Hilfe dankbar!
private void updateMap(final int selectedRoute, final boolean isMajor, final boolean isMinor)
{
dlg = ProgressDialog.show(TransitMap.this, "Updating Map", "Processing... Please wait...");
new Thread()
{
public void run()
{
try
{
TransitMap.this.removePins();
TransitMap.this.addRoutePins(selectedRoute, isMajor, isMinor);
TransitMap.this.addBusPins(selectedRoute);
map.post(new Runnable()
{
public void run()
{
TransitMap.this.map.postInvalidate();
}
});
}
catch(Exception ex)
{
}
// processing done, hide progress dialog
dlg.dismiss();
}
}.start();
}
Nach dem Ändern der Klasse, um AsyncTask zu verwenden, habe ich immer noch mein Programm abstürzen!
Dies ist der Logcat Fehler
04-13 15:16:49.217: E/AndroidRuntime(21898): FATAL EXCEPTION: main
04-13 15:16:49.217: E/AndroidRuntime(21898): java.util.ConcurrentModificationException
04-13 15:16:49.217: E/AndroidRuntime(21898): at java.util.ArrayList$ArrayListIterator.next(ArrayList.java:576)
04-13 15:16:49.217: E/AndroidRuntime(21898): at com.google.android.maps.OverlayBundle.draw(OverlayBundle.java:44)
04-13 15:16:49.217: E/AndroidRuntime(21898): at com.google.android.maps.MapView.onDraw(MapView.java:530)
04-13 15:16:49.217: E/AndroidRuntime(21898): at android.view.View.draw(View.java:6971)
04-13 15:16:49.217: E/AndroidRuntime(21898): at android.view.ViewGroup.drawChild(ViewGroup.java:1710)
04-13 15:16:49.217: E/AndroidRuntime(21898): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1437)
04-13 15:16:49.217: E/AndroidRuntime(21898): at android.view.ViewGroup.drawChild(ViewGroup.java:1708)
04-13 15:16:49.217: E/AndroidRuntime(21898): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1437)
04-13 15:16:49.217: E/AndroidRuntime(21898): at android.view.View.draw(View.java:6974)
04-13 15:16:49.217: E/AndroidRuntime(21898): at android.widget.FrameLayout.draw(FrameLayout.java:357)
04-13 15:16:49.217: E/AndroidRuntime(21898): at android.view.ViewGroup.drawChild(ViewGroup.java:1710)
04-13 15:16:49.217: E/AndroidRuntime(21898): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1437)
04-13 15:16:49.217: E/AndroidRuntime(21898): at android.view.ViewGroup.drawChild(ViewGroup.java:1708)
04-13 15:16:49.217: E/AndroidRuntime(21898): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1437)
04-13 15:16:49.217: E/AndroidRuntime(21898): at android.view.ViewGroup.drawChild(ViewGroup.java:1708)
04-13 15:16:49.217: E/AndroidRuntime(21898): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1437)
04-13 15:16:49.217: E/AndroidRuntime(21898): at android.view.ViewGroup.drawChild(ViewGroup.java:1708)
04-13 15:16:49.217: E/AndroidRuntime(21898): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1437)
04-13 15:16:49.217: E/AndroidRuntime(21898): at android.view.ViewGroup.drawChild(ViewGroup.java:1708)
04-13 15:16:49.217: E/AndroidRuntime(21898): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1437)
04-13 15:16:49.217: E/AndroidRuntime(21898): at android.view.View.draw(View.java:6974)
04-13 15:16:49.217: E/AndroidRuntime(21898): at android.widget.FrameLayout.draw(FrameLayout.java:357)
04-13 15:16:49.217: E/AndroidRuntime(21898): at android.view.ViewGroup.drawChild(ViewGroup.java:1710)
04-13 15:16:49.217: E/AndroidRuntime(21898): at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1437)
04-13 15:16:49.217: E/AndroidRuntime(21898): at android.view.View.draw(View.java:6974)
04-13 15:16:49.217: E/AndroidRuntime(21898): at android.widget.FrameLayout.draw(FrameLayout.java:357)
04-13 15:16:49.217: E/AndroidRuntime(21898): at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:1929)
04-13 15:16:49.217: E/AndroidRuntime(21898): at android.view.ViewRoot.draw(ViewRoot.java:1590)
04-13 15:16:49.217: E/AndroidRuntime(21898): at android.view.ViewRoot.performTraversals(ViewRoot.java:1290)
04-13 15:16:49.217: E/AndroidRuntime(21898): at android.view.ViewRoot.handleMessage(ViewRoot.java:1939)
04-13 15:16:49.217: E/AndroidRuntime(21898): at android.os.Handler.dispatchMessage(Handler.java:99)
04-13 15:16:49.217: E/AndroidRuntime(21898): at android.os.Looper.loop(Looper.java:143)
04-13 15:16:49.217: E/AndroidRuntime(21898): at android.app.ActivityThread.main(ActivityThread.java:4196)
04-13 15:16:49.217: E/AndroidRuntime(21898): at java.lang.reflect.Method.invokeNative(Native Method)
04-13 15:16:49.217: E/AndroidRuntime(21898): at java.lang.reflect.Method.invoke(Method.java:507)
04-13 15:16:49.217: E/AndroidRuntime(21898): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-13 15:16:49.217: E/AndroidRuntime(21898): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-13 15:16:49.217: E/AndroidRuntime(21898): at dalvik.system.NativeStart.main(Native Method)
können Sie Ihr Fehlerprotokoll einfügen –
Ich habe das Fehlerprotokoll hinzugefügt –