【发布时间】:2013-03-19 20:02:02
【问题描述】:
我的activity 包含一个内部private class,这基本上就是它的样子,但有问题:
public class MyActivity extends Activity
{
// My xmlData that I want to fill in the asynchronous task
XMLData xmlData;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
GetXMLTask task = new GetXMLTask(this);
task.execute(url);
if(xmlData == null) System.out.print("problem");
// Prints "problem" : my xmlData is null, why?
}
private class GetXMLTask extends AsyncTask<String, Void, Void>
{
public GetXMLTask(Activity context)
{
// Constructor
}
protected Void doInBackground(String... params)
{
// Here some stuff to get and parse my XML
xmlData = new XMLData(list);
System.out.print(xmlData.list.size());
// this line shows that I correctly fill my xmlData object
}
}
}
问题是在调用内部异步类之后,我的 xmlData 值为 null,我不知道为什么。我也在我的GetXMLTask 中尝试过这个:
MyActivity.this.xmlData = new XMLData(list);
但不起作用,为什么?我究竟做错了什么? 感谢您的帮助。
【问题讨论】:
-
据我所知,由于
new GetXMLTask(this),它甚至不应该编译。但从根本上说,我认为你错过了异步的含义。 -
这个编译好了,但是我没有写构造函数,因为我只是想展示主要的东西。我会添加它以避免这种情况,谢谢。
标签: java android asynchronous android-asynctask