summaryrefslogtreecommitdiff
path: root/src/de/danoeh/antennapod/service
diff options
context:
space:
mode:
authordaniel oeh <daniel.oeh@gmail.com>2012-09-25 14:12:59 +0200
committerdaniel oeh <daniel.oeh@gmail.com>2012-09-25 14:12:59 +0200
commit6904ea23a693f1ba066503b4cff245a332cdcf11 (patch)
tree5754de55b3b4fa41eb8710fe2612edb09e458529 /src/de/danoeh/antennapod/service
parente206d1571f1deb27ba8f176487e046a130613472 (diff)
downloadAntennaPod-6904ea23a693f1ba066503b4cff245a332cdcf11.zip
cancel chapter loader thread if service receives shutdown notification
Diffstat (limited to 'src/de/danoeh/antennapod/service')
-rw-r--r--src/de/danoeh/antennapod/service/PlaybackService.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/de/danoeh/antennapod/service/PlaybackService.java b/src/de/danoeh/antennapod/service/PlaybackService.java
index 9b5a404f6..38ee2cf83 100644
--- a/src/de/danoeh/antennapod/service/PlaybackService.java
+++ b/src/de/danoeh/antennapod/service/PlaybackService.java
@@ -134,6 +134,8 @@ public class PlaybackService extends Service {
private SleepTimer sleepTimer;
private Future sleepTimerFuture;
+
+ private Thread chapterLoader;
private static final int SCHED_EX_POOL_SIZE = 3;
private ScheduledThreadPoolExecutor schedExecutor;
@@ -556,7 +558,10 @@ public class PlaybackService extends Service {
}
if (shouldStream && media.getItem().getChapters() == null) {
// load chapters if available
- Thread chapterLoader = new Thread() {
+ if (chapterLoader != null) {
+ chapterLoader.interrupt();
+ }
+ chapterLoader = new Thread() {
@Override
public void run() {
@@ -1004,6 +1009,9 @@ public class PlaybackService extends Service {
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(ACTION_SHUTDOWN_PLAYBACK_SERVICE)) {
schedExecutor.shutdownNow();
+ if (chapterLoader != null) {
+ chapterLoader.interrupt();
+ }
stop();
media = null;
feed = null;