summaryrefslogtreecommitdiff
path: root/src/de
diff options
context:
space:
mode:
authordaniel oeh <daniel.oeh@gmail.com>2012-08-03 20:04:01 +0200
committerdaniel oeh <daniel.oeh@gmail.com>2012-08-03 20:04:01 +0200
commitb6b6129feb6a2df801d782928d243f2a4b8a72f7 (patch)
tree8a5671a900fcfb70f81f2df0206791ef80f5d47e /src/de
parente170605ebc8c6cc1574054074481bb778902b409 (diff)
downloadAntennaPod-b6b6129feb6a2df801d782928d243f2a4b8a72f7.zip
Executor of FeedImageLoader can now be shut down manually
Diffstat (limited to 'src/de')
-rw-r--r--src/de/danoeh/antennapod/asynctask/FeedImageLoader.java31
-rw-r--r--src/de/danoeh/antennapod/fragment/MiroGuideChannellistFragment.java2
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