Java 如何在异步任务上调用execute?

Java 如何在异步任务上调用execute?,java,android,Java,Android,我有一段代码,应该从特定的网站获得特定的值。显然我需要在AsyncTask中执行它,但我对它一无所知。有人能帮我怎么做吗? 如何执行我编写的这个AsyncTask代码块 以下是我目前的情况: 公共类BackgroundTask扩展了AsyncTask{ 字符串值=预设值; @凌驾 受保护的字符串doInBackgroundString…URL{ 类NamespaceResolver实现NamespaceContext{ 私人文件; 公共名称空间解析文档文档{ 文件=文件; } 公共字符串GetN

我有一段代码,应该从特定的网站获得特定的值。显然我需要在AsyncTask中执行它,但我对它一无所知。有人能帮我怎么做吗? 如何执行我编写的这个AsyncTask代码块

以下是我目前的情况:

公共类BackgroundTask扩展了AsyncTask{ 字符串值=预设值; @凌驾 受保护的字符串doInBackgroundString…URL{ 类NamespaceResolver实现NamespaceContext{ 私人文件; 公共名称空间解析文档文档{ 文件=文件; } 公共字符串GetNamespaceUrString前缀{ 如果prefix.equals{ return document.lookupNamespaceURInull; }否则{ return document.lookupNamespaceURIprefix; } } 公共字符串getPrefixString命名空间URI{ return document.lookupPrefixnamespaceURI; } 公共迭代器getPrefixesString命名空间URI{ 返回null; } } 试一试{ 字符串url=http://opendata.fmi.fi/wfs/fin?service=WFS&version=2.0.0&request=GetFeature&storedquery_id=fmi::observations::mareograph::timevaluepair&fmisid=134223&; StringBuilder sb=新的StringBuilder; try BufferedReader r=new BufferedReadernew InputStreamReadernew URLurl.openStream,UTF-8{ 弦线; 而line=r.readLine!=null{ sb.appendline+\n; } } 字符串xml=sb.toString; DocumentBuilderFactory工厂=DocumentBuilderFactory.newInstance; factory.setNamespaceAwaretrue; Document Document=factory.newDocumentBuilder.parsenew InputSourcenew StringReaderxml; XPath=XPathFactory.newInstance.newXPath; xpath.setNamespaceContextnew NamespaceResolvedDocument; String time=xpath.evaluate//wml2:measurementtimes[@gml:id='obs-obs-1-1-WATLEV']/wml2:point[last]//wml2:time,document; value=xpath.evaluate//wml2:measurementtimeries[@gml:id='obs-obs-1-1-WATLEV']/wml2:point[last]//wml2:value,document; System.out.formattime=%s;值=%s\n,时间,值; 返回值; }捕获异常e{ Log.dEXCEPTIONFAIL,例如toString; 返回失败:+e.toString; } } @凌驾 PostExecuteTrestring提要上的受保护无效{ MerenpintaWidget.eeee=feed; } } 这基本上是我在AsyncTask中需要执行的唯一部分:

试一试{ 字符串url=http://opendata.fmi.fi/wfs/fin?service=WFS&version=2.0.0&request=GetFeature&storedquery_id=fmi::observations::mareograph::timevaluepair&fmisid=134223&; StringBuilder sb=新的StringBuilder; try BufferedReader r=new BufferedReadernew InputStreamReadernew URLurl.openStream,UTF-8{ 弦线; 而line=r.readLine!=null{ sb.appendline+\n; } } 字符串xml=sb.toString; DocumentBuilderFactory工厂=DocumentBuilderFactory.newInstance; factory.setNamespaceAwaretrue; Document Document=factory.newDocumentBuilder.parsenew InputSourcenew StringReaderxml; XPath=XPathFactory.newInstance.newXPath; xpath.setNamespaceContextnew NamespaceResolvedDocument; String time=xpath.evaluate//wml2:measurementtimes[@gml:id='obs-obs-1-1-WATLEV']/wml2:point[last]//wml2:time,document; value=xpath.evaluate//wml2:measurementtimeries[@gml:id='obs-obs-1-1-WATLEV']/wml2:point[last]//wml2:value,document; System.out.formattime=%s;值=%s\n,时间,值; 返回值; }捕获异常e{ Log.dEXCEPTIONFAIL,例如toString; 返回失败:+e.toString; }
如果这个代码写得正确,有人能告诉我如何调用它吗?我真的不知道如何解决这个问题,现在我只是漫无边际。

您不需要在doInBackground方法中输入必须使用的url。如果要运行asyncTask类

String url = "http://opendata.fmi.fi/wfs/fin?service=WFS&version=2.0.0&request=GetFeature&storedquery_id=fmi::observations::mareograph::timevaluepair&fmisid=134223&";
public BackgroundTask  myTask = new BackgroundTask();
myTask.execute(url)
在你的背景下


实际上,这似乎给了我一个无法解析myTask.executeurl中的符号“execute”和未知类“url”错误的提示
 StringBuilder sb = new StringBuilder();
            try (BufferedReader r = new BufferedReader(new InputStreamReader(new URL(urls[0]).openStream(), "UTF-8"))) {
                String line;
                while ((line = r.readLine()) != null) {
                    sb.append(line + "\n");
                }
            }
            String xml = sb.toString();