Сбой приложения из-за изображения с высоким разрешением
В моем приложении я даю пользователю возможность установить изображение для фона рабочего стола приложения (из галереи). Приложение работает нормально, если изображение имеет низкое разрешение, но если пользователь устанавливает изображение с высоким разрешением, приложение при запуске вылетает с этой ошибкой.
android.view.WindowManager $ BadTokenException: невозможно добавить окно - токен android.os.BinderProxy@35f21ac недействителен; ваша деятельность работает?
Я использовал метод переопределения скольжения, чтобы уменьшить разрешение изображения:
Glide.with(MainActivity.this).asBitmap()
.apply(new RequestOptions().diskCacheStrategy(DiskCacheStrategy.RESOURCE).dontAnimate())
.load(storageUtil.getWallpaperStatus())
.apply(new RequestOptions().override(320,640).centerCrop())
.into(viewPagerBackground);
Теперь частота сбоев уменьшилась, но иногда приложение вылетает.
Что может быть лучшим решением для этой проблемы?
1 ответ
Вставьте свой код в этот код
if(!((Activity) context).isFinishing())
{
//your code
Glide.with(MainActivity.this).asBitmap()
.apply(new RequestOptions().diskCacheStrategy(DiskCacheStrategy.RESOURCE).dontAnimate())
.load(storageUtil.getWallpaperStatus())
.apply(new RequestOptions().override(320,640).centerCrop())
.into(viewPagerBackground);
}
Эта ошибка возникает когда-то, когда мы загружаем изображение, используя glide, но наша деятельность уже уничтожена.