地図アプリ起動時はストレージに保存されたタイル画像ファイルを読み込んで表示するが、 それはタイルキャッシュに格納され、スクロールではこのタイルキャッシュからビットマップ画像を取り出して 表示する。
ファイル読み込み、ダウンロード、レンダリングには時間がかかるため、状態管理が多少複雑になっていた。 タイルキャッシュにない場合、ファイル読み込み/ダウンロード/レンダリングのリクエストが発生するが、 スクロールした場合、同じタイルに対するリクエストが重ならないようにする必要がある。
キューでリクエストを管理し、HashSetでリクエストの重なりを回避できるが、これまでは独自の方法で、 キューを管理し、リクエストの重なりを回避してきた。
タイル画像のキャッシュは必要であるが、管理方法を一から見直し、より分かりやすいものにしたい。
最初はファイル読み込みだけで、ダウンロード/レンダリングは考えない。
タイルキャッシュは必須である。自前とはせず、LinkedHashMapを使用する。