네비게이션 앱을 더 빠르고 안정적으로 만드는 데 대한 질문이 있습니다.Android MapView 탐색 앱의 성능 문제
내 앱의 기본 레이어는 몇 개의 오버레이 (시작 및 대상에 2 개의 마커와 경로에 대해 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
참고 : 기본 UI 스레드 외부에서 업데이트 할 때 지원되지 않거나 정의되지 않은 동작이 있다고 생각합니다. 핸들러 패턴은 친구입니다. –
및 동기화 된 메서드를 사용하여지도를 업데이트하는 방법은 무엇입니까? – poeschlorn