MapActivity를 확장하는 클래스가 있습니다.대화 상자 표시 및지도 뷰 오버레이 업데이트
내가 핀에로드 버스 정류장의 목록을 기반으로 위치에 배치됩니다 updateMap.The라는 함수를 사용하여지도에 위치 핀을 가지고있다.
나는로드 대화 동안 보여 드리고자합니다중지 배열이 다운로드되지만 코드에 오류가 발생합니다. 현재 대화 상자가 나타나고 버스 경로를로드하고지도를 업데이트하기 위해 스레드가 생성됩니다.
UI 레이어를 별도의 스레드에서 업데이트 할 수 없다는 것을 깨닫기 위해 몇 가지 연구가있었습니다. 움직이는 것을 시도했지만 아무것도 작동하지 않는 것 같습니다.
도움을 주셨습니다.
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();
}
클래스를 수정 한 후 AsyncTask를 사용하면 프로그램이 여전히 충돌합니다!
이
는 로그 캣 오류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)
오류 로그를 붙여 넣을 수 있습니까? –
오류 로그 –