次のコードの実行中は、途中でも実行を停止できるようにしたいと思います。たとえば、私が持っている場合、このスレッド/クラスboolean x = true;
にコマンドの王様を送りたいと思います。stop(ReadJSONFeedMainTask);
で発生している可能性があるものも含めて、すべてをキャンセルしたいと思いonPostExecute()
ます。これどうやってするの?
これが私のコードです:
private void doStuff() {
new ReadJSONFeedMainTask().execute(urlString);
}
private class ReadJSONFeedMainTask extends AsyncTask<String, Void, String> {
protected String doInBackground(String... urls) {
return Helper.readJSONFeed(urls[0]);
}
protected void onPostExecute(String result) {
try {
dictItems = new ArrayList<HashMap<?, ?>>();
JSONArray jsonArray = new JSONArray(result);
Log.i("JSON", "Number of items in feed: " + jsonArray.length());
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
HashMap<String, String> map = new HashMap<String, String>();
Iterator<?> it = jsonObject.keys();
while (it.hasNext())
{
// do a bunch of time consuming stuff
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}