Skip to content

Commit 9929936

Browse files
committed
修复移除可能导致图片磁盘缓存初始化失败的问题
1 parent a9b71b7 commit 9929936

File tree

3 files changed

+10
-15
lines changed

3 files changed

+10
-15
lines changed

library/src/com/lidroid/xutils/BitmapUtils.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,11 @@ public <T extends View> void display(T container, String uri, BitmapDisplayConfi
218218
return;
219219
}
220220

221+
if (TextUtils.isEmpty(uri)) {
222+
callBack.onLoadFailed(container, uri, displayConfig.getLoadFailedDrawable());
223+
return;
224+
}
225+
221226
container.clearAnimation();
222227

223228
if (callBack == null) {
@@ -234,11 +239,6 @@ public <T extends View> void display(T container, String uri, BitmapDisplayConfi
234239

235240
callBack.onPreLoad(container, uri, displayConfig);
236241

237-
if (TextUtils.isEmpty(uri)) {
238-
callBack.onLoadFailed(container, uri, displayConfig.getLoadFailedDrawable());
239-
return;
240-
}
241-
242242
// find bitmap from mem cache.
243243
Bitmap bitmap = globalConfig.getBitmapCache().getBitmapFromMemCache(uri, displayConfig);
244244

library/src/com/lidroid/xutils/bitmap/BitmapGlobalConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ private BitmapGlobalConfig(Context context, String diskCachePath) {
7575
initBitmapCache();
7676
}
7777

78-
public static BitmapGlobalConfig getInstance(Context context, String diskCachePath) {
78+
public synchronized static BitmapGlobalConfig getInstance(Context context, String diskCachePath) {
7979

8080
if (TextUtils.isEmpty(diskCachePath)) {
8181
diskCachePath = OtherUtils.getDiskCacheDir(context, "xBitmapCache");

library/src/com/lidroid/xutils/bitmap/core/BitmapCache.java

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -137,17 +137,11 @@ public Bitmap downloadBitmap(String uri, BitmapDisplayConfig config, final Bitma
137137

138138
try {
139139
Bitmap bitmap = null;
140+
140141
// try download to disk
141142
if (globalConfig.isDiskCacheEnabled()) {
142-
synchronized (mDiskCacheLock) {
143-
// Wait for disk cache to initialize
144-
while (!isDiskCacheReady) {
145-
try {
146-
mDiskCacheLock.wait();
147-
} catch (Throwable e) {
148-
break;
149-
}
150-
}
143+
if (mDiskLruCache == null) {
144+
initDiskCache();
151145
}
152146

153147
if (mDiskLruCache != null) {
@@ -319,6 +313,7 @@ public void clearDiskCache() {
319313
if (mDiskLruCache != null && !mDiskLruCache.isClosed()) {
320314
try {
321315
mDiskLruCache.delete();
316+
mDiskLruCache.close();
322317
} catch (Throwable e) {
323318
LogUtils.e(e.getMessage(), e);
324319
}

0 commit comments

Comments
 (0)