0

mapView でオーバーレイを作成します。問題は、mapsview アクティビティに再び戻ると、以前に作成したオーバーレイが表示されることです。ondestroy メソッドでオーバーレイを削除しようとしましたが、役に立ちませんでした。どちらも役に立ちません。アクティビティが終了したら、オーバーレイを取り除きたいだけです。解決策はありますか?

   @Override
protected void onDestroy(){ 
    super.onDestroy();
    stopWorker=true;
    mapView.invalidate();
    mapView.postInvalidate();
    for (int i=0; i<mapView.getOverlays().size(); i++ ) {
        mapView.getOverlays().remove(i);
    }

    Toast.makeText(this,"map destroy ...", Toast.LENGTH_LONG).show();
    mapView.getOverlays().clear();
}
4

2 に答える 2

6

アクティビティが完了していないようです。アクティビティが終了した場合にのみ、onDestroy 状態に入ります。onPause() または onResume() で同じコードを書いてみてください。

于 2011-05-04T10:14:51.710 に答える
2

アクティビティが終了すると、オーバーレイは自動的に削除されます。コードに他のバグがあります。たとえば、トリガーしない HOME を押してこれをテストしている場合がありますonDestroy()

于 2011-05-04T10:11:34.360 に答える