0
我的應用程序中有AsyncTask問題。 有AsyncTask從SD卡獲取文件並使用它進行操作。使用AsyncTask從sd卡解析xml時遇到問題
它實際上給了我一個正確的結果,但在做任務時有一個黑屏和一個阻塞的用戶界面約3秒,顯然會讓用戶惱火。我想知道如何擺脫這個問題。 所以這裏是代碼:
ParseXMLTask.java:
public ParseXMLTask(Context context, IPostParse iPostParse, ProgressBar progressBar) {
this.context = context;
this.iPostParse = iPostParse;
this.progressBar = progressBar;
}
@Override
protected Intent doInBackground(File... params) {
File file = params[0];
Intent pack = new Intent(context, PackActivity.class);
/* some heavy parsing task */
return pack;
}
@Override
protected void onPreExecute() {
progressBar.setIndeterminate(true);
}
@Override
protected void onPostExecute(Intent result) {
iPostParse.postParse(result);
}
LoadingActivity.java:
將執行的任務代碼:
private void parseXML() {
File file = new File(PATH + fileName + ".xml");
ParseXMLTask parseTask = new ParseXMLTask(this, this, loadingBar);
parseTask.execute(file);
}
而實現的方法的界面,沒什麼特別的:
public void postParse(Intent result) {
result.putExtra("name", packName);
result.putExtra("author", packAuthor);
result.putExtra("date", packDate);
result.putExtra("file", fileName);
result.putExtra("votes", votes);
startActivity(result);
}
希望你能幫我解決這個問題,謝謝!
使用意圖服務而不是asynctask – Raghunandan 2013-05-09 08:11:33