Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 回收视图+;图像在某些设备上滞后_Android_Android Recyclerview_Picasso_Universal Image Loader_Android Glide - Fatal编程技术网

Android 回收视图+;图像在某些设备上滞后

Android 回收视图+;图像在某些设备上滞后,android,android-recyclerview,picasso,universal-image-loader,android-glide,Android,Android Recyclerview,Picasso,Universal Image Loader,Android Glide,我有一个非常奇怪的bug,只有在HTC One上: 图像冻结的RecyclerView 我试过UniversalImageLoader mDisplayOptions = new DisplayImageOptions.Builder() .resetViewBeforeLoading(true) .cacheInMemory(true) .cacheOnDisc(true) .delayBef

我有一个非常奇怪的bug,只有在HTC One上: 图像冻结的RecyclerView

我试过UniversalImageLoader

mDisplayOptions = new DisplayImageOptions.Builder()
            .resetViewBeforeLoading(true) 
            .cacheInMemory(true) 
            .cacheOnDisc(true) 
            .delayBeforeLoading(100)
            .imageScaleType(ImageScaleType.EXACTLY_STRETCHED)
            .build();
和装载

ImageViewAware imageAware = new ImageViewAware(mainIcon);
ImageLoader.getInstance().cancelDisplayTask(imageAware);
ImageLoader.getInstance().displayImage(url, imageAware, mDisplayOptions);
列表滚动时暂停

if (newState == RecyclerView.SCROLL_STATE_IDLE) {
    ImageLoader.getInstance().resume();
} else {
    ImageLoader.getInstance().pause();
}
我还试过毕加索、格莱德和阿奎里

Glide.clear(mainIcon);
glide.load(url)
     .centerCrop()
     .override(targetSize, targetSize) // target size - 200
     .dontAnimate()
     .skipMemoryCache(true)
     .priority(Priority.LOW)
     .into(mainIcon);
但在HTC设备上仍然落后(三星S4、LG L70和三星galaxy ace 1(!)在没有feezes的情况下工作)


有没有办法解决这个问题?

确保启用了
StrictMode
来指出主应用程序线程上的网络和磁盘I/O。如果
StrictMode
没有抱怨,请使用方法跟踪来尝试确定您在哪里花费时间。谢谢。我在主线程中没有任何网络连接。我认为,glide/picasso/UIL使用后台线程下载和解码位图。如果使用得当,它们确实可以。但是,您会说“带有图像的RecyclerView冻结”。在安卓系统中,当涉及到用户界面时,“冻结”通常意味着某些东西正在占用主应用程序线程。最可能的罪魁祸首是磁盘I/O和网络I/O。因此,请配置
StrictMode
。也许您的特定HTC设备存在一些边缘情况,导致一些通常在后台线程上发生的工作在主应用程序线程上完成。