在执行以下代码时,我希望能够阻止它运行,即使它已经完成了一半。例如,如果我有一个,那么我想向这个线程/类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();
}
}
}