0

Детали: Я меняю изображение из вытачиваемого с помощью Glide. Когда я изменил ориентацию в ландшафт, он дал мне ошибку logcat, указывающую на метод, который я использую для изменения моего изображения с помощью Glide.Android Обработка изменения ориентации. app crash points при смене изображения с помощью скольжения

Фрагмент кода: ошибка

private void changeDice1(int drawable) { 
    Glide.with(MainActivity.this) 
      .load(drawable) 
      .crossFade() 
      .diskCacheStrategy(DiskCacheStrategy.SOURCE) 
      .into(ivDice1); 
} 

@Override 
public void onDestroy() { 
    super.onDestroy(); 
} 

Logcat:

enter image description here

+0

Где вы называете эту функцию? –

+0

в функции, которая также называется внутри onCreate. –

+0

См. Ответ ниже. –

ответ

0

Вы можете использовать Glide.clear(), чтобы отменить загрузку.

Однако это исключение возникает, когда вы пытаетесь запустить новую нагрузку после того, как ваша деятельность была уничтожена. Вы начинаете загружать изображения после получения асинхронных данных? Если это так, вы, вероятно, захотите отменить свою асинхронную выборку, когда ваша активность остановлена ​​или, по крайней мере, проигнорировать результат, если фишка завершена, и ваша деятельность будет уничтожена.

см этого вопроса для получения дополнительной информации: https://github.com/bumptech/glide/issues/975

1

В Glide загружает изображение асинхронно. Поэтому, если вы измените ориентацию своего устройства, может случиться так, что ссылочный контекст будет изменен и будет выбрано исключение. Так измените свою функцию, как это, используя блок try-catch.

private void changeDice1(int drawable) { 
    try{ 
     Glide.with(MainActivity.this) 
       .load(drawable) 
       .crossFade() 
       .diskCacheStrategy(DiskCacheStrategy.SOURCE) 
       .into(ivDice1); 
    } catch(Exception e) { e.printStackTrace();} 
} 

Теперь вызовите функцию снова в onConfigurationChanged.

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
    changeDice1(R.drawable.your_image); 
} 
+0

Спасибо! @Reaz Он отлично работает. –

 Смежные вопросы

  • Нет связанных вопросов^_^