|
21 | 21 | import com.lidroid.xutils.bitmap.core.BitmapCache;
|
22 | 22 | import com.lidroid.xutils.bitmap.download.DefaultDownloader;
|
23 | 23 | import com.lidroid.xutils.bitmap.download.Downloader;
|
| 24 | +import com.lidroid.xutils.cache.FileNameGenerator; |
24 | 25 | import com.lidroid.xutils.task.Priority;
|
25 |
| -import com.lidroid.xutils.util.LogUtils; |
26 |
| -import com.lidroid.xutils.util.OtherUtils; |
27 | 26 | import com.lidroid.xutils.task.PriorityAsyncTask;
|
28 |
| -import com.lidroid.xutils.cache.FileNameGenerator; |
29 | 27 | import com.lidroid.xutils.task.PriorityExecutor;
|
| 28 | +import com.lidroid.xutils.util.LogUtils; |
| 29 | +import com.lidroid.xutils.util.OtherUtils; |
| 30 | + |
| 31 | +import java.util.HashMap; |
30 | 32 |
|
31 | 33 | /**
|
32 | 34 | * Author: wyouflf
|
@@ -60,27 +62,40 @@ public class BitmapGlobalConfig {
|
60 | 62 | private BitmapCacheListener bitmapCacheListener;
|
61 | 63 |
|
62 | 64 | private Context mContext;
|
| 65 | + private final static HashMap<String, BitmapGlobalConfig> configMap = new HashMap<String, BitmapGlobalConfig>(1); |
63 | 66 |
|
64 | 67 | /**
|
65 | 68 | * @param context
|
66 | 69 | * @param diskCachePath If null, use default appCacheDir+"/xBitmapCache"
|
67 | 70 | */
|
68 |
| - public BitmapGlobalConfig(Context context, String diskCachePath) { |
| 71 | + private BitmapGlobalConfig(Context context, String diskCachePath) { |
69 | 72 | if (context == null) throw new IllegalArgumentException("context may not be null");
|
70 | 73 | this.mContext = context;
|
71 | 74 | this.diskCachePath = diskCachePath;
|
72 | 75 | initBitmapCache();
|
73 | 76 | }
|
74 | 77 |
|
| 78 | + public static BitmapGlobalConfig getInstance(Context context, String diskCachePath) { |
| 79 | + |
| 80 | + if (TextUtils.isEmpty(diskCachePath)) { |
| 81 | + diskCachePath = OtherUtils.getDiskCacheDir(context, "xBitmapCache"); |
| 82 | + } |
| 83 | + |
| 84 | + if (configMap.containsKey(diskCachePath)) { |
| 85 | + return configMap.get(diskCachePath); |
| 86 | + } else { |
| 87 | + BitmapGlobalConfig config = new BitmapGlobalConfig(context, diskCachePath); |
| 88 | + configMap.put(diskCachePath, config); |
| 89 | + return config; |
| 90 | + } |
| 91 | + } |
| 92 | + |
75 | 93 | private void initBitmapCache() {
|
76 | 94 | new BitmapCacheManagementTask().execute(BitmapCacheManagementTask.MESSAGE_INIT_MEMORY_CACHE);
|
77 | 95 | new BitmapCacheManagementTask().execute(BitmapCacheManagementTask.MESSAGE_INIT_DISK_CACHE);
|
78 | 96 | }
|
79 | 97 |
|
80 | 98 | public String getDiskCachePath() {
|
81 |
| - if (TextUtils.isEmpty(diskCachePath)) { |
82 |
| - diskCachePath = OtherUtils.getDiskCacheDir(mContext, "xBitmapCache"); |
83 |
| - } |
84 | 99 | return diskCachePath;
|
85 | 100 | }
|
86 | 101 |
|
|
0 commit comments