diff options
author | daniel oeh <daniel.oeh@gmail.com> | 2013-09-21 12:11:06 +0200 |
---|---|---|
committer | daniel oeh <daniel.oeh@gmail.com> | 2013-09-21 12:11:06 +0200 |
commit | 0b0ea77df1bde38bf211c68e54be45541080e2c7 (patch) | |
tree | 98bfbf41368a1b8ff00ee033a77130d0566c7f8a /src/de/danoeh/antennapod/activity | |
parent | 4d50903182ec3839012408b34ddf8705f5b3ffb3 (diff) | |
download | AntennaPod-0b0ea77df1bde38bf211c68e54be45541080e2c7.zip |
Fixed crashes in FeedItemlist
Diffstat (limited to 'src/de/danoeh/antennapod/activity')
-rw-r--r-- | src/de/danoeh/antennapod/activity/FeedItemlistActivity.java | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/de/danoeh/antennapod/activity/FeedItemlistActivity.java b/src/de/danoeh/antennapod/activity/FeedItemlistActivity.java index 98695429c..981379f6a 100644 --- a/src/de/danoeh/antennapod/activity/FeedItemlistActivity.java +++ b/src/de/danoeh/antennapod/activity/FeedItemlistActivity.java @@ -49,6 +49,8 @@ public class FeedItemlistActivity extends ActionBarActivity { private ItemlistFragment filf; private ExternalPlayerFragment externalPlayerFragment; + private AsyncTask<?, ?, ?> currentLoadTask; + @Override public void onCreate(Bundle savedInstanceState) { setTheme(UserPreferences.getTheme()); @@ -70,7 +72,10 @@ public class FeedItemlistActivity extends ActionBarActivity { } - private void loadData(long id) { + private synchronized void loadData(long id) { + if (currentLoadTask != null) { + currentLoadTask.cancel(true); + } AsyncTask<Long, Void, Feed> loadTask = new AsyncTask<Long, Void, Feed>() { @Override @@ -81,6 +86,12 @@ public class FeedItemlistActivity extends ActionBarActivity { } @Override + protected void onCancelled(Feed feed) { + super.onCancelled(feed); + if (AppConfig.DEBUG) Log.d(TAG, "load task was cancelled"); + } + + @Override protected void onPostExecute(Feed result) { super.onPostExecute(result); if (result != null) { @@ -103,6 +114,7 @@ public class FeedItemlistActivity extends ActionBarActivity { } } }; + currentLoadTask = loadTask; loadTask.execute(id); } @@ -113,6 +125,14 @@ public class FeedItemlistActivity extends ActionBarActivity { } @Override + protected void onStop() { + super.onStop(); + if (currentLoadTask != null) { + currentLoadTask.cancel(true); + } + } + + @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); if (feed != null) { |