У меня вопрос о том, как сделать навигационное приложение более быстрым и стабильным.Проблема с производительностью на Android-навигаторе MapView
Основной слой моего приложения - это простой вид на карту, покрытый несколькими накладками (2 маркера для начала и цели и один для маршрута).
Моя идея - реализовать поток для отображения маршрута, чтобы приложение не зависало при вычислении более сложного маршрута (как это делается прямо сейчас).
После реализации нити нет обновлений показывают больше, может быть, вы можете помочь мне с коротким взглядом на отрывок из моего кода ниже:
private class MyLocationListener implements LocationListener {
@Override
public void onLocationChanged(Location loc) {
posUser = new GeoPoint((int) (loc.getLatitude() * 1E6), (int) (loc
.getLongitude() * 1E6));
new Thread(){
public void run(){
mapView.invalidate();
// Erase old overlays
mapView.getOverlays().clear();
// Draw updated overlay elements and adjust basic map settings
updateText();
if(firstRefresh){
adjustMap();
firstRefresh = false;
}
getAndPaintRoute();
drawMarkers();
}
};
}
Некоторых особенностей суммированы к способу, как " drawMarkers() "или" updateText() "... (им не нужно больше внимания ;-))
привет, вы правы, я не начал тему * стыд *. Теперь мой маршрут отображается, у меня будут некоторые тесты на производительность ;-) – poeschlorn
Примечание: я думаю, что вы находитесь в неподдерживаемом/неопределенном поведении при обновлении за пределами основного потока пользовательского интерфейса. Образец Handler - ваш друг. –
и как использовать синхронизированный метод для обновления карты? – poeschlorn