如何在android中的片段转换后取消Picasso请求

时间:2015-09-17 12:08:42

标签: android android-fragments picasso

我有一个带有gridview的片段,它使用适配器同时加载20个图像。我想确保当片段消失/丢弃时未完成的毕加索请求优雅地终止。

问题

  1. 这是由毕加索框架自动处理的(所以我不必担心)
  2. 如何实施取消所有Picasso处置请求?

3 个答案:

答案 0 :(得分:3)

如果你想按照你的要求执行任何操作,你必须做下面的事情;

Picasso.with(context)
.load("http://some.example.com")
.tag(YourTag)
.into(YourImageView)

当你想恢复然后在onResume()调用

picasso.resumeTag(YourTag);

当你想暂停然后在onPause()调用

picasso.pauseTag(YourTag);

如果要取消,请在onStop()或onDestroy()中取消

picasso.cancelTag(YourTag);

答案 1 :(得分:2)

Glide与Picasso非常相似(它们具有几乎相同的API),并为请求提供生命周期绑定。

您只需致电Glide.with(fragment).load(...).into(imageView);

Here你有关于格莱德和毕加索之间差异的好文章。

答案 2 :(得分:0)

我想详细说明@Akbar的答案,因为我没有“毕加索”实例,所以我无法让它工作。 所以这是我的解决方案。以相同的方式初始化,然后取消:

Picasso.with(context).cancelRequest(YourImageView);

加成: 如果你在获取上下文时遇到问题(我知道我做了),或者想知道它是什么,你可以在一个片段中做到这一点:

Context context = getView().getContext();

希望有所帮助