0

我的应用程序中的 AsyncTask 有一些问题。有一个 AsyncTask 从 sd 卡获取文件并使用它进行操作。

它实际上给了我一个正确的结果,但是在执行任务时有一个黑屏和一个大约 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);
}

加载活动.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);      
}

希望您能帮我解决这个问题,谢谢!

4

1 回答 1

0

如果您将太多数据放入 Intent 的附加组件中,就会发生这种情况。

于 2013-05-09T08:43:33.663 回答