Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
异步任务类赢得';我无法在较新的Android verison上工作_Android_Android Layout_Android Intent - Fatal编程技术网

异步任务类赢得';我无法在较新的Android verison上工作

异步任务类赢得';我无法在较新的Android verison上工作,android,android-layout,android-intent,Android,Android Layout,Android Intent,我想解析xml,所以我写了代码,它可以运行到2.3版本,但在最新版本上不起作用,所以我阅读了有关asynctask的内容,并修改了代码,但我的imageview仍然为空,并且我在logcat上没有收到任何错误,这意味着asynctask的实现存在问题 { setContentView(R.layout.actionbar); String URL = "http://ws.audioscrobbler.com/2.0/?method=artist.search&artis

我想解析xml,所以我写了代码,它可以运行到2.3版本,但在最新版本上不起作用,所以我阅读了有关asynctask的内容,并修改了代码,但我的imageview仍然为空,并且我在logcat上没有收到任何错误,这意味着asynctask的实现存在问题

{
    setContentView(R.layout.actionbar);
    String URL = "http://ws.audioscrobbler.com/2.0/?method=artist.search&artist=ricky_martin&api_key=97855e265470056987425832aa9aa81&limit=" + 1 + "&page=" + 1;
    new FetchXMLAsyncTask().execute(URL);
    icon = (ImageView) findViewById(R.id.icon);
}

class FetchXMLAsyncTask extends AsyncTask<String, Void, Void> {
    String name;
    @Override
    protected Void doInBackground(String... params) {
        try {
            // TODO Auto-generated method stub
            final String Artist = "artist";
            final String KEY_NAME = "name";
            final String API = "b25b959554ed76058ac220b7b2e0a026";
            final String KEY_IMAGE ="image";
            //final String KEY_COST = "cost";
            //final String KEY_DESC = "description";
            String URL = params[0]; 
            XmlParser parser = new XmlParser();
            String xml = parser.getXmlFromUrl(URL); // getting XML
            Document doc = parser.getDomElement(xml); // getting DOM element
            XPathFactory xPathfactory = XPathFactory.newInstance();
            XPath xpath = xPathfactory.newXPath();
            XPathExpression expr;
            expr = xpath.compile("//image[@size=\"large\"]");
            NodeList nl = (NodeList) expr.evaluate(doc, XPathConstants.NODESET);
            // looping through all item nodes <item>
            for (int i = 0; i < nl.getLength(); i++) {
                Element e = (Element) nl.item(i);
                String name = parser.getValue(e, KEY_NAME);// name child value
                image = parser.getValue(e, KEY_IMAGE);
                // Toast.makeText(this, "name"+name+"url"+image, Toast.LENGTH_SHORT).show();
            } }catch (XPathExpressionException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
        return null;
    }
    @Override
    protected void onPostExecute(Void result) {
        super.onPostExecute(result);
        //do something after parsing is done
        URL thumb_u;
        try {
            thumb_u = new URL(image);
            Drawable thumb_d = Drawable.createFromStream(thumb_u.openStream(), "src");
            icon.setImageDrawable(thumb_d);
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }   
}
{
setContentView(R.layout.actionbar);
字符串URL=”http://ws.audioscrobbler.com/2.0/?method=artist.search&artist=ricky_martin&api_key=97855e265470056987425832aa9aa81&limit=“+1+”&page=“+1;
新建FetchXMLAsyncTask().execute(URL);
icon=(ImageView)findViewById(R.id.icon);
}
类FetchXMLAsyncTask扩展了AsyncTask{
字符串名;
@凌驾
受保护的Void doInBackground(字符串…参数){
试一试{
//TODO自动生成的方法存根
最终弦乐艺术家=“艺术家”;
最终字符串键\u NAME=“NAME”;
最终字符串API=“b25b959554ed76058ac220b7b2e0a026”;
最终字符串键\u IMAGE=“IMAGE”;
//最终字符串键\u COST=“COST”;
//最终字符串键_DESC=“description”;
字符串URL=params[0];
XmlParser=新的XmlParser();
字符串xml=parser.getXmlFromUrl(URL);//获取xml
Document doc=parser.getDomeElement(xml);//获取DOM元素
XPathFactory XPathFactory=XPathFactory.newInstance();
XPath=xPathfactory.newXPath();
xpathexpressionexpr;
expr=xpath.compile(“//image[@size=\“large\”]);
NodeList nl=(NodeList)expr.evaluate(doc,XPathConstants.NODESET);
//循环通过所有项目节点
对于(int i=0;i
启动任务默认情况下一次启动一个。也许您还有一些其他任务等待执行,并阻止此任务运行(新任务等待旧任务完成,因为它不会并行运行)

启动android 3.0时,您应该在线程池执行器中启动任务

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
    task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, params);
} else {
    task.execute(params);
}

默认情况下,启动任务一次启动一个。也许您还有一些其他任务等待执行,并阻止此任务运行(新任务等待旧任务完成,因为它不会并行运行)

启动android 3.0时,您应该在线程池执行器中启动任务

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
    task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, params);
} else {
    task.execute(params);
}

看一看,并将一些调试消息打印到logcat,这样我们就可以看到它走了多远。当我在设备上运行此代码时,我不会得到任何logcat错误或调试错误。。我认为它没有调用我的FetchXmlparser类,或者它没有执行我的postExecute方法。请看一下代码,正如我之前所说的,在代码中加入一些调试消息。您应该知道它是否触发异步任务。最初,我可以通过浏览器()看到
URL
返回“无效的API密钥-必须由last.fm授予有效密钥”。尽管如此,
API
值似乎仍然有效-我在这篇文章“b25b959554ed76058ac220b7b2e0a026”中修改了我的API。我使用asynctask在代码中进行了修改,现在它在2.3及更低版本的android上显示图像。。但是对于ICS来说仍然没有运气。还有什么我忘记的东西,比如粘线吗?看一看,并将一些调试消息打印到logcat,这样我们就可以看到它走了多远。我在这里发布之前遵循了该教程,但我找不到修复此实现的方法。当我在设备上运行此代码时,我不会得到任何logcat错误或调试错误。。我认为它没有调用我的FetchXmlparser类,或者它没有执行我的postExecute方法。请看一下代码,正如我之前所说的,在代码中加入一些调试消息。您应该知道它是否触发异步任务。最初,我可以通过浏览器()看到
URL
返回“无效的API密钥-必须由last.fm授予有效密钥”。尽管如此,
API
值似乎仍然有效-我在这篇文章“b25b959554ed76058ac220b7b2e0a026”中修改了我的API。我使用asynctask在代码中进行了修改,现在它在2.3及更低版本的android上显示图像。。但是ICS仍然没有运气,还有什么东西我忘记了,比如粘线吗?