summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordaniel oeh <daniel.oeh@gmail.com>2013-09-21 11:21:15 +0200
committerdaniel oeh <daniel.oeh@gmail.com>2013-09-21 11:21:15 +0200
commit1de02752a821a5e17015693dc016181c2bc89d4d (patch)
tree255040cba1608355a63c0b671b1178d32a07a04f
parente4fa17d7d022e923f7c7e80a3ffbc246d2a427d6 (diff)
downloadAntennaPod-1de02752a821a5e17015693dc016181c2bc89d4d.zip
Fixed IllegalStateException in ItemViewActivity
-rw-r--r--src/de/danoeh/antennapod/activity/ItemviewActivity.java17
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() {