diff options
author | daniel oeh <daniel.oeh@gmail.com> | 2013-09-21 11:21:15 +0200 |
---|---|---|
committer | daniel oeh <daniel.oeh@gmail.com> | 2013-09-21 11:21:15 +0200 |
commit | 1de02752a821a5e17015693dc016181c2bc89d4d (patch) | |
tree | 255040cba1608355a63c0b671b1178d32a07a04f | |
parent | e4fa17d7d022e923f7c7e80a3ffbc246d2a427d6 (diff) | |
download | AntennaPod-1de02752a821a5e17015693dc016181c2bc89d4d.zip |
Fixed IllegalStateException in ItemViewActivity
-rw-r--r-- | src/de/danoeh/antennapod/activity/ItemviewActivity.java | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/de/danoeh/antennapod/activity/ItemviewActivity.java b/src/de/danoeh/antennapod/activity/ItemviewActivity.java index 253830cb8..4b66fc81d 100644 --- a/src/de/danoeh/antennapod/activity/ItemviewActivity.java +++ b/src/de/danoeh/antennapod/activity/ItemviewActivity.java @@ -40,6 +40,7 @@ public class ItemviewActivity extends ActionBarActivity { private static final int EVENTS = EventDistributor.DOWNLOAD_HANDLED | EventDistributor.DOWNLOAD_QUEUED; private FeedItem item; + private AsyncTask<?, ?, ?> currentLoadTask; @Override public void onCreate(Bundle savedInstanceState) { @@ -64,18 +65,23 @@ public class ItemviewActivity extends ActionBarActivity { protected void onResume() { super.onResume(); StorageUtils.checkStorageAvailability(this); - } @Override public void onStop() { super.onStop(); EventDistributor.getInstance().unregister(contentUpdate); + if (currentLoadTask != null) { + currentLoadTask.cancel(true); + } if (AppConfig.DEBUG) Log.d(TAG, "Stopping Activity"); } - private void loadData(long itemId) { + private synchronized void loadData(long itemId) { + if (currentLoadTask != null) { + currentLoadTask.cancel(true); + } AsyncTask<Long, Void, FeedItem> loadTask = new AsyncTask<Long, Void, FeedItem>() { @Override @@ -84,6 +90,12 @@ public class ItemviewActivity extends ActionBarActivity { } @Override + protected void onCancelled(FeedItem feedItem) { + super.onCancelled(feedItem); + if (AppConfig.DEBUG) Log.d(TAG, "loadTask was cancelled"); + } + + @Override protected void onPostExecute(FeedItem feedItem) { super.onPostExecute(feedItem); if (feedItem != null && feedItem.getFeed() != null) { @@ -100,6 +112,7 @@ public class ItemviewActivity extends ActionBarActivity { } }; loadTask.execute(itemId); + currentLoadTask = loadTask; } private void populateUI() { |