我有一個包含一些數據的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