From b30e5a8ff5cdbc663cb59540d654b5ab331f8e0c Mon Sep 17 00:00:00 2001 From: daniel oeh Date: Mon, 16 Jul 2012 12:46:54 +0200 Subject: [PATCH] improved setupPositionSaver method --- .../antennapod/service/PlaybackService.java | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/src/de/danoeh/antennapod/service/PlaybackService.java b/src/de/danoeh/antennapod/service/PlaybackService.java index 6c011d8b0..85118419b 100644 --- a/src/de/danoeh/antennapod/service/PlaybackService.java +++ b/src/de/danoeh/antennapod/service/PlaybackService.java @@ -331,22 +331,23 @@ public class PlaybackService extends Service { } private void setupPositionSaver() { - if (positionSaver == null) { - positionSaver = new PositionSaver() { - @Override - protected void onCancelled(Void result) { - super.onCancelled(result); - positionSaver = null; - } - - @Override - protected void onPostExecute(Void result) { - super.onPostExecute(result); - positionSaver = null; - } - }; - positionSaver.execute(); + if (positionSaver != null && !positionSaver.isCancelled()) { + positionSaver.cancel(true); } + positionSaver = new PositionSaver() { + @Override + protected void onCancelled(Void result) { + super.onCancelled(result); + positionSaver = null; + } + + @Override + protected void onPostExecute(Void result) { + super.onPostExecute(result); + positionSaver = null; + } + }; + positionSaver.execute(); } private MediaPlayer.OnPreparedListener preparedListener = new MediaPlayer.OnPreparedListener() {