2011-01-05 5 views
1

hier ist der Code für die Ausnahme ::wie man FATALE AUSNAHME lösen: Timer-11 in Android?

if (getZoomLevel() != last_zoom) 
{ 
// if computeScroll called before timer counts down we should drop it and start it over again 
    zoom_event_delay_timer.cancel(); 
    zoom_event_delay_timer = new Timer(); 
    Log.v("last_zoom","last_zoom"); 
    zoom_event_delay_timer.schedule(new TimerTask() 
    { 
    @Override 
    public void run() 
    { 
     zoom_change_listener.onZoomChange(_this, getZoomLevel(), last_zoom); 
     Log.v("last_zoom","last_zoom"+last_zoom); 
     last_zoom = getZoomLevel(); 
     Log.v("last_zoom","last_zoom"); 
    } 
    }, events_timeout); 
} 

und die Fehler:

01-05 12:24:50.791: ERROR/AndroidRuntime(11132): FATAL EXCEPTION: Timer-11 
    01-05 12:24:50.791: ERROR/AndroidRuntime(11132): java.util.ConcurrentModificationException 
    01-05 12:24:50.791: ERROR/AndroidRuntime(11132):  at java.util.ArrayList$ArrayListIterator.next(ArrayList.java:573) 
    01-05 12:24:50.791: ERROR/AndroidRuntime(11132):  at com.bluepal.android.parkable.Prakablescreen.onRegionChange(Prakablescreen.java:1028) 
    01-05 12:24:50.791: ERROR/AndroidRuntime(11132):  at com.bluepal.android.parkable.Prakablescreen$14.onPanChange(Prakablescreen.java:467) 
    01-05 12:24:50.791: ERROR/AndroidRuntime(11132):  at com.bluepal.android.parkable.EnhancedMapView$2.run(EnhancedMapView.java:126) 
    01-05 12:24:50.791: ERROR/AndroidRuntime(11132):  at java.util.Timer$TimerImpl.run(Timer.java:289) 

Antwort

1

Das Problem scheint hier zu sein, dass Sie den UI-Thread von einem anderen Thread (in diesem Fall den Timer) aufrufen. Ich fand thesesites zur Erklärung und zur Lösung des Problems (ich habe einen Handler verwendet).

1

einige Quellcode Bitte liefern.

Aus dem Fehler scheint es, dass Sie versuchen, eine Arraylist während des Iterierens zu ändern.Wenn dies der Fall ist, verwenden Sie einen temporären Container für die Arraylist & nach allen Änderungen speichern Sie diese temporäre Arraylist auf Ihre Arraylist.

0

From the error it seems that you are trying to modify an arraylist while iterating over it

Wenn 100rabh richtig ist und Sie modifizieren nicht Ihre Liste obwohl Iterator, vielleicht können Sie einen CopyOnWriteArrayList verwenden, die THREAD ist.

Verwandte Themen