java image clone_Java EncodedImage.cloneOrNull方法代码示例

import com.facebook.imagepipeline.image.EncodedImage; //导入方法依赖的package包/类

/**

* Associates encodedImage with given key in disk cache. Disk write is performed on background

* thread, so the caller of this method is not blocked

*/

public void put(

final CacheKey key,

EncodedImage encodedImage) {

Preconditions.checkNotNull(key);

Preconditions.checkArgument(EncodedImage.isValid(encodedImage));

// Store encodedImage in staging area

mStagingArea.put(key, encodedImage);

// Write to disk cache. This will be executed on background thread, so increment the ref count.

// When this write completes (with success/failure), then we will bump down the ref count

// again.

final EncodedImage finalEncodedImage = EncodedImage.cloneOrNull(encodedImage);

try {

mWriteExecutor.execute(

new Runnable() {

@Override

public void run() {

try {

writeToDiskCache(key, finalEncodedImage);

} finally {

mStagingArea.remove(key, finalEncodedImage);

EncodedImage.closeSafely(finalEncodedImage);

}

}

});

} catch (Exception exception) {

// We failed to enqueue cache write. Log failure and decrement ref count

// TODO: 3697790

FLog.w(

TAG,

exception,

"Failed to schedule disk-cache write for %s",

key.getUriString());

mStagingArea.remove(key, encodedImage);

EncodedImage.closeSafely(finalEncodedImage);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值