Есть несколько fl aws с вашим кодом. Glide загружает изображения в отдельном потоке, поэтому он запускает код загрузки независимо от вашего l oop. Некоторые проблемы:
- Вы управляете
imageNumber
из нескольких потоков. Это приведет к случайным чувствительным ко времени проблемам. Вы не должны увеличивать imageNumber
в onResourceReady
- l oop будет бесконечно l oop, пока не будет достигнуто желаемое время. Это вызовет большую загрузку ЦП и может быть решено с помощью блокировок, ожиданий или подобного.
Мое предложение: Попробуйте загрузить каждое изображение за другим синхронно с решением из этого ответа . Когда изображение загружено, подсчитайте, сколько времени осталось до прохождения «перерыва загрузки изображения», и используйте Thread.sleep(milliSeconds)
для ожидания оставшегося времени. Затем вы можете обновить imageView.
Убедитесь, что вы запускаете этот код в отдельном потоке и используете runOnUIThread
при обновлении imageView.
Вероятно, вы можете дополнительно оптимизировать это, используя ConcurrentQueue, где загрузка всех изображений происходит одновременно, и отдельный потребительский поток берет из очереди и ожидает между ними. Это, вероятно, приведет к более высокому использованию памяти, поскольку изображения также будут храниться в очереди.