Как сделать так, чтобы Glide загружал разные URL, но сохранял последнее действительное изображение? - PullRequest
0 голосов
/ 10 апреля 2020

Я использую Glide 4.0 для загрузки изображений для просмотра в студии Android. То, что я хочу, это:

  1. Glide для непрерывной выборки изображений со временем каждые 30 с.
  2. URL-адрес меняется со временем, каждую минуту к нему добавляется дата в виде: base-url + yy.mm.dd-HH-MM
  3. Если URL-адрес не найден, я хочу, чтобы Glide использовал последнее найденное изображение из предыдущего URL-адреса.

Код Я использовал:

     @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final ImageView songImage = findViewById(R.id.songImage);
    final Handler handler = new Handler();


    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd-HH-mm");
            String currentDateandTime = sdf.format(new Date());
            System.out.println("Current Time Formated----------------> " + currentDateandTime);

            Glide.with(MainActivity.this)
                    .asGif()
                    .load("https://xxxxx.com/images/do_image-"+currentDateandTime+".gif")
                    //.signature(new ObjectKey(minutes))
                    .into(songImage);

            handler.postDelayed(this, 30000);

        }
    },1000);
}

Код работает, если он находит правильный URL-адрес, но затем, после того, как miute заменяет изображение пустым и выдает исключение:

I/Glide: Root cause (1 of 1)
java.io.FileNotFoundException: https://xxxxxxx.com/images/do_image-2020.04.10-18-37.gif

Как можно Я достиг этого?

...