summaryrefslogtreecommitdiff
path: root/src/de/danoeh/antennapod/asynctask
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/danoeh/antennapod/asynctask')
-rw-r--r--src/de/danoeh/antennapod/asynctask/FeedImageLoader.java31
1 files changed, 21 insertions, 10 deletions
diff --git a/src/de/danoeh/antennapod/asynctask/FeedImageLoader.java b/src/de/danoeh/antennapod/asynctask/FeedImageLoader.java
index ab750d4b3..628d62d9b 100644
--- a/src/de/danoeh/antennapod/asynctask/FeedImageLoader.java
+++ b/src/de/danoeh/antennapod/asynctask/FeedImageLoader.java
@@ -59,16 +59,7 @@ public class FeedImageLoader {
private FeedImageLoader() {
handler = new Handler();
- executor = Executors.newFixedThreadPool(Runtime.getRuntime()
- .availableProcessors(), new ThreadFactory() {
-
- @Override
- public Thread newThread(Runnable r) {
- Thread t = new Thread(r);
- t.setPriority(Thread.MIN_PRIORITY);
- return t;
- }
- });
+ executor = createExecutor();
coverCache = new LruCache<String, Bitmap>(coverCacheSize) {
@@ -99,6 +90,19 @@ public class FeedImageLoader {
};
}
+ private ExecutorService createExecutor() {
+ return Executors.newFixedThreadPool(Runtime.getRuntime()
+ .availableProcessors(), new ThreadFactory() {
+
+ @Override
+ public Thread newThread(Runnable r) {
+ Thread t = new Thread(r);
+ t.setPriority(Thread.MIN_PRIORITY);
+ return t;
+ }
+ });
+ }
+
public static FeedImageLoader getInstance() {
if (singleton == null) {
singleton = new FeedImageLoader();
@@ -185,6 +189,13 @@ public class FeedImageLoader {
target.setImageResource(R.drawable.default_cover);
}
}
+
+ public void clearExecutorQueue() {
+ executor.shutdownNow();
+ if (AppConfig.DEBUG) Log.d(TAG, "Executor was shut down.");
+ executor = createExecutor();
+
+ }
public void wipeImageCache() {
coverCache.evictAll();