Как плитка, я использую Here-map.Android: Здесь карта, как загрузить изображение async для черепицы?
Вместо этого я пытаюсь настроить растровые фрагменты с сервера S3. В документации есть два класса, которые поддерживают меня: UrlMapRasterTileSourceBase и MapRasterTileSource.
В моем случае я попытался создать экземпляр MapRasterTileSource, а затем переопределить функцию getTileWithError (int x, int y, int zoomLevel), чтобы загрузить изображение моей плитки с сервера S3.
Проблема заключается в том, что время загрузки изображения слишком велико, и пользовательский интерфейс кажется отстающим.
В документе, здесь является частью:
Примечание: Убедитесь, что getTileWithError() возвращает в пределах разумного количество времени. Если ваша операция занимает более длительный период времени, запускает асинхронную операцию и возвращает код ошибки TileResult.Error.NOT_READY, пока операция находится в прогрессе.
Но, я не знаю, как это применить. Я попытался загрузить изображение с обратным вызовом, но не знаю, что делать после результата.
Не могли бы вы дать мне руку на это, пожалуйста !?
-Когда изображение будет полностью загружено, верните изображение обратно во время выполнения. => Значит, это значит, что мы должны кэшировать результат, правильно? В это время я делаю то же самое с тем, что вы предлагаете, загружая async, возвращая NOT_READY, и когда данные, готовые в обратном вызове, -> сохраняют его в кеш-файле, в следующий раз, когда getTileWithError() снова вызовет проверку, есть ли файл кеша для эта плитка затем загружается. Или у вас есть другое решение для возврата образа во время выполнения? –