ナビゲーションアプリをより高速で安定させる方法について質問があります。
私のアプリの基本的なレイヤーは、いくつかのオーバーレイ(開始と目的地用に2つのマーカー、ルート用に1つ)で覆われた単純なマップビューです。
私の考えは、ルートを表示するスレッドを実装して、より複雑なルートの計算中にアプリがハングアップしないようにすることです(現在のように)。
スレッドを実装した後、更新は表示されなくなりました。以下のコードの抜粋を一目で確認できるかもしれません。
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()」などのメソッドにまとめられています...(これ以上注意する必要はありません;-))