Add onDestroy() and check for isCancelled()

This commit is contained in:
misaochan 2016-10-07 17:20:05 +13:00
parent 5cdf3a6bab
commit df11e65806
2 changed files with 15 additions and 0 deletions

View file

@ -109,6 +109,15 @@ public class NearbyListFragment extends ListFragment implements TaskListener {
super.onDetach(); super.onDetach();
} }
@Override
public void onDestroy() {
super.onDestroy();
if(nearbyAsyncTask != null && nearbyAsyncTask.getStatus() != AsyncTask.Status.FINISHED) {
nearbyAsyncTask.cancel(true);
}
}
private class NearbyAsyncTask extends AsyncTask<Void, Integer, List<Place>> { private class NearbyAsyncTask extends AsyncTask<Void, Integer, List<Place>> {
private final TaskListener listener; private final TaskListener listener;
@ -138,6 +147,11 @@ public class NearbyListFragment extends ListFragment implements TaskListener {
@Override @Override
protected void onPostExecute(List<Place> result) { protected void onPostExecute(List<Place> result) {
super.onPostExecute(result); super.onPostExecute(result);
if(isCancelled()) {
return;
}
progressBar.setVisibility(View.GONE); progressBar.setVisibility(View.GONE);
mAdapter = new NearbyAdapter(getActivity(), places); mAdapter = new NearbyAdapter(getActivity(), places);

View file

@ -26,6 +26,7 @@ public class NearbyPlaces {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy); StrictMode.setThreadPolicy(policy);
URL file = new URL("https://tools.wmflabs.org/wiki-needs-pictures/data/data.csv"); URL file = new URL("https://tools.wmflabs.org/wiki-needs-pictures/data/data.csv");
BufferedReader in = new BufferedReader(new InputStreamReader(file.openStream())); BufferedReader in = new BufferedReader(new InputStreamReader(file.openStream()));