diff options
Diffstat (limited to 'src/de/danoeh/antennapod/asynctask')
-rw-r--r-- | src/de/danoeh/antennapod/asynctask/FeedImageLoader.java | 31 |
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(); |