MapViewを使用したアンドロイドアプリケーションがあり、ユーザーの携帯端末での最小限のユーザー操作で数時間連続して動作します。私はしばらくするとMapViewに何か起こり、完全に使えなくなってしまうことがわかりました。長時間の使用後にAndroid MapViewが破損する
アプリケーションがクラッシュすることはなく、マップはまだ存在しますが、破損しているようです。地図をつまむ/スクロールすると、タイルが揺れて飛び散り、マーカーがランダムに跳ね返ります。これは誰かが遭遇したようなものですか?
編集:バグはコードのそのセクションにあり、問題はそうであると仮定すると
public void updateMarkers(boolean centerMap)
{
log("updateMarkers(" + centerMap + ")");
int vehicLat = (int) (AppState.getLatitude() * 1e6);
int vehicLng = (int) (AppState.getLongitude() * 1e6);
GeoPoint vehiclePoint = new GeoPoint(vehicLat, vehicLng);
List<Overlay> currentOverlays = mapView.getOverlays();
if(!currentOverlays.isEmpty())
{
currentOverlays.clear();
mapView.postInvalidate();
}
Drawable drawable = getResources().getDrawable(R.drawable.car);
MapOverlay iconOverlay = new MapOverlay(drawable, this);
OverlayItem iconPoint = new OverlayItem(vehiclePoint, "", "");
iconOverlay.addOverlay(iconPoint);
currentOverlays.add(iconOverlay);
if(centerMap)
{
mapController.setCenter(vehiclePoint);
mapController.setZoom(17);
}
mapView.postInvalidate();
}
あなたが正確に何をしているのか?私はマップビュー(長期間)を使用する大規模なアプリケーションを持っていますが、私はこの動作が表示されません – debracey
その基本的には、ユーザーの現在の場所を示し、時にはそれにいくつかのマーカーがあります。この問題は、拡張された使用の後にのみ発生するようです – TomBomb
いくつかのコードは役に立ちます... – debracey