【发布时间】:2015-07-16 08:11:08
【问题描述】:
这是我的代码:
class XMLDownload extends AsyncTask<URL, Void, ArrayList<HashMap<String, String>>> {
@Override
protected ArrayList<HashMap<String, String>> doInBackground(URL... urls) {
if (cd.isConnectingToInternet()) {
URL url = urls[0];
XMLParser xmlParser = new XMLParser();
String xml = xmlParser.getXMLFromUrl(url);
Document doc = xmlParser.getDomElement(xml);
if (doc == null){
Toast.makeText(context,"Falsche URL",Toast.LENGTH_SHORT).show();
} else {
writeToFile(xml, "xmlfilesnames" + ".kx_todo");
[...]
}
@Override
protected void onPostExecute(ArrayList<HashMap<String, String>> xmlItems) {
if (cd.isConnectingToInternet()) {
CustomAdapterProjects adapter = new CustomAdapterProjects(ListViewActivity.context, projectItems);
setListAdapter(adapter);
}
}
}
如果用户提供了错误的 URL 并且doc 为空。然后我想展示一个 Toast。
我已经阅读了一些关于取消 AsyncTask 的其他主题,但这是更独特的,因为我在 doInBackground 方法内有一个 NPE,而不是其他地方。
如何取消doInBackground 方法。继续这个方法是没有意义的。否则我会得到很多 NPE (NullPointerException)。
【问题讨论】:
标签: java android android-asynctask