From f2fe9553de10bf8ee31caea2733f8a50a29b4799 Mon Sep 17 00:00:00 2001 From: daniel oeh Date: Mon, 2 Jul 2012 17:38:59 +0200 Subject: [PATCH] Improved stability of playbackService when handling an Error --- src/de/podfetcher/activity/MediaplayerActivity.java | 3 +++ src/de/podfetcher/service/PlaybackService.java | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/de/podfetcher/activity/MediaplayerActivity.java b/src/de/podfetcher/activity/MediaplayerActivity.java index 4b3b04278..1eb6c90a1 100644 --- a/src/de/podfetcher/activity/MediaplayerActivity.java +++ b/src/de/podfetcher/activity/MediaplayerActivity.java @@ -559,6 +559,7 @@ public class MediaplayerActivity extends SherlockFragmentActivity implements public class MediaPositionObserver extends AsyncTask { + private static final String TAG = "MediaPositionObserver"; private static final int WAITING_INTERVALL = 1000; private MediaPlayer player; @@ -579,6 +580,8 @@ public class MediaplayerActivity extends SherlockFragmentActivity implements Log.d(TAG, "Thread was interrupted while waiting. Finishing now"); return null; + } catch (IllegalStateException e) { + Log.d(TAG, "player is in illegal state, exiting now"); } publishProgress(); } diff --git a/src/de/podfetcher/service/PlaybackService.java b/src/de/podfetcher/service/PlaybackService.java index 26c1d4d70..07a24a2b1 100644 --- a/src/de/podfetcher/service/PlaybackService.java +++ b/src/de/podfetcher/service/PlaybackService.java @@ -523,12 +523,16 @@ public class PlaybackService extends Service { while (!isCancelled() && player.isPlaying()) { try { Thread.sleep(WAITING_INTERVALL); + saveCurrentPosition(); } catch (InterruptedException e) { Log.d(TAG, "Thread was interrupted while waiting. Finishing now..."); return null; + } catch (IllegalStateException e) { + Log.d(TAG, "Player is in illegal state. Finishing now"); + return null; } - saveCurrentPosition(); + } return null; }