作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用自定义 Picasso
实例和 Picasso.Builder()
在适配器中提供我自己的 RequestHandler
,如下所示:
private Picasso mPicasso;
public Adapter(Context context) {
mContext = context;
mPicasso = new Picasso.Builder(mContext)
.addRequestHandler(new RequestHandler() {
...
})
.build();
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
mPicasso.load(...)
.fit()
.centerCrop()
.placeholder(...)
.noFade()
.into(holder.imageView);
}
但每次 Activity 重新创建(例如通过配置更改)时,mPicasso
中的 com.squareup.picasso.Dispatcher$NetworkBroadcastReceiver
实例会泄漏并且永远不会从内存中收集垃圾.
这是来自 Eclipse Memory Analyzer 的图表: http://www.upsara.com/images/q93m_chart49.png
有什么建议吗?
最佳答案
我遇到了同样的问题。通过从回调方法调用关闭来修复它:
mPicasso.load(...)
.fit()
.centerCrop()
.placeholder(...)
.noFade()
.into(holder.imageView, new Callback() {
@Override
public void onSuccess() {
mPicasso.shutdown();
}
@Override
public void onError() {
mPicasso.shutdown();
}
});
关于android - 带有 Builder 的自定义 Picasso 泄漏 NetworkBroadcastReceiver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32616944/
我正在使用自定义 Picasso 实例和 Picasso.Builder() 在适配器中提供我自己的 RequestHandler,如下所示: private Picasso mPicasso; pu
我是一名优秀的程序员,十分优秀!