diff options
author | daniel oeh <daniel.oeh@gmail.com> | 2012-08-03 20:04:01 +0200 |
---|---|---|
committer | daniel oeh <daniel.oeh@gmail.com> | 2012-08-03 20:04:01 +0200 |
commit | b6b6129feb6a2df801d782928d243f2a4b8a72f7 (patch) | |
tree | 8a5671a900fcfb70f81f2df0206791ef80f5d47e | |
parent | e170605ebc8c6cc1574054074481bb778902b409 (diff) | |
download | AntennaPod-b6b6129feb6a2df801d782928d243f2a4b8a72f7.zip |
Executor of FeedImageLoader can now be shut down manually
-rw-r--r-- | src/de/danoeh/antennapod/asynctask/FeedImageLoader.java | 31 | ||||
-rw-r--r-- | src/de/danoeh/antennapod/fragment/MiroGuideChannellistFragment.java | 2 |
2 files changed, 23 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(); diff --git a/src/de/danoeh/antennapod/fragment/MiroGuideChannellistFragment.java b/src/de/danoeh/antennapod/fragment/MiroGuideChannellistFragment.java index e3aeff64a..a2a48f2e2 100644 --- a/src/de/danoeh/antennapod/fragment/MiroGuideChannellistFragment.java +++ b/src/de/danoeh/antennapod/fragment/MiroGuideChannellistFragment.java @@ -20,6 +20,7 @@ import com.actionbarsherlock.app.SherlockListFragment; import de.danoeh.antennapod.AppConfig; import de.danoeh.antennapod.R; import de.danoeh.antennapod.adapter.MiroGuideChannelListAdapter; +import de.danoeh.antennapod.asynctask.FeedImageLoader; import de.danoeh.antennapod.miroguide.con.MiroGuideException; import de.danoeh.antennapod.miroguide.con.MiroGuideService; import de.danoeh.antennapod.miroguide.model.MiroChannel; @@ -122,6 +123,7 @@ public class MiroGuideChannellistFragment extends SherlockListFragment { if (channelLoader != null) { channelLoader.cancel(true); } + FeedImageLoader.getInstance().clearExecutorQueue(); } @Override |