【发布时间】:2016-05-25 20:21:22
【问题描述】:
我正在尝试使用 IntentService 来处理和上传在不同进程中运行的图像以获得更多内存。我也在使用毕加索来加载图像。当图像较小时,位图会成功加载并上传,但是如果图像很大,则 IntentService 在 Picasso 完成加载之前终止。
Picasso 必须在 UIThread 上运行
这里是代码。
private void downloadImage(File file) {
final Uri uri = Uri.fromFile(file);
Handler uiHandler = new Handler(Looper.getMainLooper());
uiHandler.post(new Runnable() {
@Override
public void run() {
Picasso.with(NewImageProcessingService.this).load(uri).transform(new ImageLoadingUtil.DecreaseQualityTransformation(imageQuality)).into(NewImageProcessingService.this);
}
});
}
@Override
protected void onHandleIntent(Intent intent) {
File file = (File) intent.getSerializableExtra(KEY_IMAGE_FILE);
imageQuality = ImagesUtils.IMAGE_QUALITY
.values()[intent.getIntExtra(IMAGE_QUALITY, ImagesUtils.IMAGE_QUALITY.DEFAULT.ordinal())];
downloadImage(file);
}
【问题讨论】:
标签: android picasso intentservice