私は Android アプリで Google マップ API を使用しており、インスタンス化時にスレッドを開始して、後でカスタマイズされた ItemizedOverlay に保持される OverlayItem オブジェクトになるいくつかの画像をダウンロードします。
ダウンロードが完了すると、UI はハンドラーを介して通知され、現在のオーバーレイ (存在する場合) を削除し、ダウンロードした画像を含む新しいオーバーレイを作成し、それをマップ ビューに追加してから、マップ ビューの invalidate( ) 方法。これにより、カスタマイズされたオーバーレイのオーバーライドされた draw(canvas, mapview, shadow) メソッドが呼び出され、オーバーレイ内のアイテムのリストをループして、それぞれを canvas.drawBitmap(bitmap, left, top, paint) 経由で描画します。
これはすべて正常に機能しますが、画面に触れておらず、コードによって他の invalidate() 呼び出しが行われていないという事実にもかかわらず、カスタマイズされたオーバーレイの draw() メソッドが何度も無限に呼び出されます。
これは視覚的には何の効果もありませんが、明らかに望ましくありません。その draw() メソッドが連続して呼び出される原因を知っている人はいますか?