diff --git a/app/src/main/java/com/etesync/syncadapter/ui/CollectionMembersListFragment.java b/app/src/main/java/com/etesync/syncadapter/ui/CollectionMembersListFragment.java index b49aad06..1ef7202e 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/CollectionMembersListFragment.java +++ b/app/src/main/java/com/etesync/syncadapter/ui/CollectionMembersListFragment.java @@ -40,6 +40,7 @@ public class CollectionMembersListFragment extends ListFragment implements Adapt private Account account; private CollectionInfo info; private JournalEntity journalEntity; + private AsyncTask asyncTask; private TextView emptyTextView; @@ -73,7 +74,7 @@ public class CollectionMembersListFragment extends ListFragment implements Adapt @Override public void refresh() { - new JournalMembersFetch().execute(); + asyncTask = new JournalMembersFetch().execute(); } @Override @@ -85,6 +86,13 @@ public class CollectionMembersListFragment extends ListFragment implements Adapt getListView().setOnItemClickListener(this); } + @Override + public void onDestroyView() { + super.onDestroyView(); + if (asyncTask != null) + asyncTask.cancel(true); + } + @Override public void onItemClick(AdapterView parent, View view, int position, long id) { final JournalManager.Member member = (JournalManager.Member) getListAdapter().getItem(position); diff --git a/app/src/main/java/com/etesync/syncadapter/ui/JournalItemActivity.java b/app/src/main/java/com/etesync/syncadapter/ui/JournalItemActivity.java index 633e127a..5c25d918 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/JournalItemActivity.java +++ b/app/src/main/java/com/etesync/syncadapter/ui/JournalItemActivity.java @@ -166,6 +166,7 @@ public class JournalItemActivity extends BaseActivity implements Refreshable { public static class PrettyFragment extends Fragment { CollectionInfo info; SyncEntry syncEntry; + private AsyncTask asyncTask; public static PrettyFragment newInstance(CollectionInfo info, SyncEntry syncEntry) { PrettyFragment frag = new PrettyFragment(); @@ -186,17 +187,24 @@ public class JournalItemActivity extends BaseActivity implements Refreshable { switch (info.type) { case ADDRESS_BOOK: v = inflater.inflate(R.layout.contact_info, container, false); - new LoadContactTask(v).execute(); + asyncTask = new LoadContactTask(v).execute(); break; case CALENDAR: v = inflater.inflate(R.layout.event_info, container, false); - new LoadEventTask(v).execute(); + asyncTask = new LoadEventTask(v).execute(); break; } return v; } + @Override + public void onDestroyView() { + super.onDestroyView(); + if (asyncTask != null) + asyncTask.cancel(true); + } + private class LoadEventTask extends AsyncTask { View view; LoadEventTask(View v) { diff --git a/app/src/main/java/com/etesync/syncadapter/ui/journalviewer/ListEntriesFragment.java b/app/src/main/java/com/etesync/syncadapter/ui/journalviewer/ListEntriesFragment.java index cf58a41b..40ce849b 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/journalviewer/ListEntriesFragment.java +++ b/app/src/main/java/com/etesync/syncadapter/ui/journalviewer/ListEntriesFragment.java @@ -41,6 +41,7 @@ public class ListEntriesFragment extends ListFragment implements AdapterView.OnI private EntityDataStore data; private CollectionInfo info; private JournalEntity journalEntity; + private AsyncTask asyncTask; private TextView emptyTextView; @@ -74,11 +75,18 @@ public class ListEntriesFragment extends ListFragment implements AdapterView.OnI public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); - new JournalFetch().execute(); + asyncTask = new JournalFetch().execute(); getListView().setOnItemClickListener(this); } + @Override + public void onDestroyView() { + super.onDestroyView(); + if (asyncTask != null) + asyncTask.cancel(true); + } + @Override public void onItemClick(AdapterView parent, View view, int position, long id) { EntryEntity entry = (EntryEntity) getListAdapter().getItem(position);