我很高兴终于在Picasso中使用了标签和优先级属性,但我似乎无法使其发挥作用。 我有一个活动加载图像,当条件满足时,另一个半透明活动出现在此活动前面并加载另一个图像。
当我为第二次图片加载设置优先级为高时,它仍然会在加载" main"之前下载第一个活动的图像。之一。
所以我在第一个图像加载时放置了一个标记,当我加载另一个图像时暂停它,并在离开第二个活动时恢复。但它永远不会恢复。
在第一项活动中,我获得了此代码:
final static String TAG_PICASSO = "com.sien.ur.urstore_firstactivity_fragment";
if (!TextUtils.isEmpty(resource)) {
Picasso.with(parent.getContext())
.load(resource)
.tag(TAG_PICASSO)
.resize(wCol, wCol)
.centerCrop()
.placeholder(R.drawable.default_loader_wallpapers)
.error(R.drawable.default_loader_wallpapers)
.into(holder.imageView);
} else {
holder.imageView.setImageResource(R.drawable.ur_icons_wp);
}
以下是我的第二项活动的代码:
public class DisplayThemeActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.display_theme);
findViewById(R.id.display_theme_close_btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
String pckg = "com.sien.theme.beach1";
if (!TextUtils.isEmpty(pckg)) {
new DisplayThemeInfosFetcher(this, (RelativeLayout) findViewById(R.id.display_theme_main_layout)).execute(pckg);
}else{
finish();
}
}
private class DisplayThemeInfosFetcher extends AsyncTask<String, Void, Result<Composite>> {
Context context;
RelativeLayout view;
public DisplayThemeInfosFetcher(Context ctx, RelativeLayout layout) {
this.context = ctx;
this.view = layout;
}
@Override
protected Result<Composite> doInBackground(String... strings) {
return CatalogService.getInstance(context).loadByPckg(strings[0]); // Has to be done away from main thread
}
@Override
protected void onPostExecute(Result<Composite> result) {
if (result.succeeded()) {
try {
final Composite.App composite = (Composite.App) result.getValue();
if (composite != null) {
Picasso.with(context).pauseTag(FirstActivity.TAG_PICASSO); // pauses corectly
Picasso.with(context).load(composite.getResource(5)).skipMemoryCache().priority(Picasso.Priority.HIGH).into((ImageView) view.findViewById(R.id.display_theme_img));
view.findViewById(R.id.display_theme_btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
view.findViewById(R.id.display_theme_img).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
}
} catch (NullPointerException ignored) {
}
}
}
}
@Override
protected void onStop() {
Picasso.with(this).resumeTag(URWallpapersFragment3D.TAG_PICASSO); // Never resume
super.onStop();
}
}
我在这里做错了吗?