我有一个包含一些数据的XML文件,所以我创建代表它的类:需要说明:如何使用AsyncTask?
public class MyData
{
ArrayList<SpecialData> list;
int currentPage, totalPages;
}
正如你能猜到我有SpecialData
项目,每一个都包含许多领域的列表,并currentPage
/totalPages
两个XML文件中的唯一值。我需要和异步解析XML文件,所以我创建这个类:
class GetXMLTask extends AsyncTask<String, Void, MyData>
{
@Override
protected MyData doInBackground(String... params)
{
MyData md = null;
// Getting/parsing data
return md;
}
}
我给它一个尝试,问题不从这里来,因为我正确地分析我的XML文件和我的MyData
对象完善。但后来我用这个任务是这样,我在主要Activity
类:
MyData md = null;
GetXMLTask task = new GetXMLTask(this);
task.execute(new String[]{url});
// How can this change my md object?
这可能是非常愚蠢的,但我根本不知道怎么我的MyData
例如从我的主类链接到一个我得到AsyncTask
。我该怎么办?谢谢。
为什么你不声明MyData作为一个gl obal变量并尝试在'onPostExecute()'中访问它? – Swayam 2013-03-19 17:21:38
这听起来像你可能想要一个'Future'。 –
Richard
2013-03-19 17:23:32
你应该可以只执行'task.execute(url)',而不是'new String [] {url}' – ianhanniballake 2013-03-19 18:45:33