Основное использование:
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).....
}