我的应用程序中的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);
}
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);
}
希望你帮我解决这个问题,谢谢!
答案 0 :(得分:0)
如果您在Intent的附加内容中放入太多数据,就会发生这种情况。