J'ai le code suivant que je veux être en mesure de faire une boucle toutes les 30 secondes.Thread Android Issue
MyLocation myLocation = new MyLocation();
public LocationResult locationResult = new LocationResult() {
@Override
public void gotLocation(final Location location) {
GeoPoint myGeoPoint = new GeoPoint(
(int) (location.getLatitude() * 1000000),
(int) (location.getLongitude() * 1000000));
myMapController.animateTo(myGeoPoint);
myMapController.setZoom(10);
lat = location.getLatitude();
lon = location.getLongitude();
new OverlayTask().execute();
Timer timer;
timer = new Timer();
timer.scheduleAtFixedRate(new MyTimerTask(), 30000, 30000);
}
};
une fois que j'est congédié ai l'emplacement et le OverlayTask exécute bien, il exécutera également lorsqu'ils sont affectés à un élément de menu pour le forcer. Cependant, à l'intérieur de la minuterie, j'obtiens une erreur.
public class MyTimerTask extends TimerTask {
public void run() {
try {
Log.i(">>>>>>>>>>>> Refresh: ", "Success");
new OverlayTask().execute();
} catch (Exception e) {
Log.e(">>>>>>>>>>>> Error executing MyAsyncTask: ", e.getMessage(), e);
}
}
}
L'erreur est ....
Erreur exécution MyAsyncTask: (2573): Seul le thread d'origine qui a créé une hiérarchie de vue peut toucher son point de vue.