Picasso Android图片加载 - 线程模型

4

这是我的做法:

  • 创建了一个自定义下载器(extends OkHttpDownloader)并将其指定给Picasso。
  • 在下载器内部,我添加了一个拦截器( getClient().interceptors().add(new Interceptor() {...})

我在调试模式下启动我的Android应用程序时,我注意到有两个线程,每个线程的名称均为“Picasso-....”。当我尝试从网络访问图像时,每个线程都会调用我的拦截器的public Response intercept(Chain chain)方法,这意味着相同的请求被多个线程同时处理。这是什么原因?


我们能看到相关的代码吗? - Gavriel
1个回答

0

感谢Gavriel让我做一些简单的事情,比如设置一个非常基本的Picasso安装并实际完成我的家庭作业, 也就是稍微试验一下。无论如何,我发现执行以下操作:

picasso.setIndicatorsEnabled(true); 和/或 picasso.setLoggingEnabled(true);

实际上创建了另一个线程(我想是为了管理这种调试信息?)。这让我很困惑-这两个线程确实分别执行了我的请求。非常混乱,但没关系。我猜它是异步完成的,对于日志记录来说是有意义的。不过,您知道为什么第二个线程会执行我的图像请求吗?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接