gpt4 book ai didi

android - 带有 Builder 的自定义 Picasso 泄漏 NetworkBroadcastReceiver

转载 作者:太空狗 更新时间:2023-10-29 14:05:34 25 4
gpt4 key购买 nike

我正在使用自定义 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com