应用程序因高分辨率图像而崩溃

时间:2018-03-11 05:43:34

标签: android android-glide image-compression image-resolution

在我的应用中,我正在为用户提供为应用的主屏幕背景设置图像的功能(来自图库)。如果图像低分辨率但应用程序设置高分辨率图像,应用程序在启动时崩溃会出现此错误,该应用程序正常工作。

  

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 个答案:

答案 0 :(得分:0)

将代码粘贴到此代码中

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);
}

当我们使用滑行加载图像时会发生此错误,但我们的活动已被破坏。