AsyncTask Android开发:麻烦在AsyncTask中传递参数

时间:2013-06-25 10:49:36

标签: java nullpointerexception

我是android的新手。构建一个需要在后台完成任务的应用程序。以下是代码片段。

public class YQL extends AsyncTask <List,Void,List>
{   @Override
    protected List doInBackground(List... Suggestions) {
                //doing some stuff using Suggestions[0]
    }    
}

我有一个List类的对象,即mySuggestions,我需要将其传递给异步任务。但由于异步任务只将数组作为输入,我尝试了以下内容。

YQL yqlMain = new YQL();
List[] temp = null;
temp[0] =  mySuggestions
yqlMain.execute(temp);

没用。 错误:空指针访问:变量temp只能为null。 有什么建议?

3 个答案:

答案 0 :(得分:0)

你做错了..做点什么

List temp = new ArrayList();
temp.add(mySuggestions);
yqlMain.execute(temp);

答案 1 :(得分:0)

temp为null,但您正在调用其中的操作。这给出了NullPointerException

以下代码应该执行操作(未经测试)

public class YQL extends AsyncTask <String,Void,List>
{   
    @Override
    protected List doInBackground(String... Suggestions) {

    }    
}

执行:

YQL ygl = new YQL();
ygl.Execute("Suggestion 1", "Suggestion 2")

答案 2 :(得分:0)

new DownloadFilesTask().execute(url1, url2, url3);

然后

private class DownloadFilesTask extends AsyncTask<URL, Integer, Long> {
..
..
}

检查此链接: AsyncTask