1
私はIntentServiceを使用して、別のプロセスで実行されている画像を処理しアップロードしてメモリを増やそうとしています。私はPicassoを使って画像を読み込んでいます。 Imageが小さい場合、ビットマップは正常に読み込まれ、アップロードされますが、イメージが大きい場合、Picasaが読み込まれる前にIntentServiceが終了します。IntentService 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);
}