Picasso Singleton用法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Picasso Singleton用法相关的知识,希望对你有一定的参考价值。
我在我的应用程序中使用Picasso。
首先,我只使用以下格式:
Picasso.with(context)....into(imgView);
这样我认为我使用毕加索作为单身人士。我呢?
其次,我想使用setIndicatorsEnabled
。但是它不能添加到上面的格式,因为它不是静态方法。有没有办法以上面的格式使用此功能?
第三,如果我需要使用Picasso.Builder(...).build()
创建自定义实例以使用setIndicatorsEnabled
,那么在应用程序的活动中实现单例使用的最佳方法是什么?
是的,当你使用Picasso.with(context)时,你认为Picasso是一个单例实例....
使用设置指示器
Picasso mPicasso = Picasso.with(context);
mPicasso.setIndicatorsEnabled(true);
mPicasso....load().into(imageView);
如果您使用构建器,您应该创建自己的单例来保存您的Picasso实例并在完成后清理它。每次使用毕加索时都不要使用构建器,因为它会创建一个新实例。我相信Picasso.with(context)只需要你的上下文并调用getApplicationContext并将picasso的单例实例与应用程序上下文一起存储。
这是实现单身毕加索课程的好方法
public class ImageHandler {
private static Picasso instance;
public static Picasso getSharedInstance(Context context)
{
if(instance == null)
{
instance = new Picasso.Builder(context).executor(Executors.newSingleThreadExecutor()).memoryCache(Cache.NONE).indicatorsEnabled(true).build();
}
return instance;
}
}
然后在代码中实现它将如下:
ImageHandler.getSharedInstance(getApplicationContext()).load(imString).skipMemoryCache().resize(width, height).into(image, new Callback() {
@Override
public void onSuccess() {
layout.setVisibility(View.VISIBLE);
}
@Override
public void onError() {
}
});
请注意,如果不必要,您不必实现回调
目前的方法似乎是使用setSingletonInstance
在你的应用程序创建中运行:
Picasso.setSingletonInstance(Picasso.Builder(context).build()
以上是关于Picasso Singleton用法的主要内容,如果未能解决你的问题,请参考以下文章
csharp C#代码片段 - 使类成为Singleton模式。 (C#4.0+)https://heiswayi.github.io/2016/simple-singleton-pattern-us