Glide 问题 Вы не можете начать загрузку для уничтоженной активности

Основное использование:
Glide.with(context).load(imageUrl).into(imageView);


Сценарий «Вы не можете начать загрузку для уничтоженной активности»:
когда сторонний сервер запрашивает изображения, активность закрывается во время процесса сетевого запроса, и будет сообщено об этой ошибке.

Причина:
в основном в контексте, потому что, хотя активность закрыта, после успешного сетевого обратного вызова адрес изображения получен, и когда изображение загружается с помощью glide, активность уже завершена ~ Посмотрите на исходный код скольжения
:

 

 Тогда здесь выбрасывается исключение:

Это исключение возникает, когда activity.isDestroyed()~

Есть также несколько других исключений: 
Вы не можете начать загрузку фрагмента до его прикрепления.

Вы не можете начать загрузку в нулевом контексте

В конечном счете, это потому, что мы передали уничтоженную активность или пустой контекст, а активность, смонтированная фрагментом, пуста.

Оглядываясь назад на используемую сцену, Glide вызывается после успешного обратного вызова.Когда выполняется метод Glide.with();, текущая активность была уничтожена, поэтому возникает эта проблема.

Решение:

При использовании активности при передаче параметров

if(!this.isFinishing()) {
        Glide.with(this).....
}

или

if(!this.isDestroyed()) {
        Glide.with(this).....
}

При использовании контекста в качестве передачи параметра

​if(context !=null) {
        Glide.with(context).....
}

При использовании фрагмента при передаче параметров

if (fragment != null && fragment.getActivity() != null) {
        Glide.with(fragment).....
}

Guess you like

Origin blog.csdn.net/NewActivity/article/details/122704527