【发布时间】:2016-12-25 00:24:10
【问题描述】:
我编写了一个 Asynctask,它从不同的 URL 加载 5 个提要,将所有提要写入同一个文件(通过下面显示的 WriteFeed 方法),然后仅基于第一个提要加载活动。
但是,我收到了 android.os.TransactionTooLargeException: data parcel size 1052800 bytes,尽管所有五个提要加起来总共只有 70 个提要项。请注意,我仅使用解析的第一个提要启动下一个活动onPostExecute,但我在 AsyncTask 期间收到此异常。如何并行运行这些提要?请帮忙。
private class AsyncLoadXMLFeed extends AsyncTask<String, Void, Void> {
@Override
protected Void doInBackground(String... params) {
// Obtain feed
String feedlink1, feedlink2, feedlink3, feedlink4, feedlink5;
feedlink1=params[0];
feedlink2=params[1];
feedlink3=params[2];
feedlink4=params[3];
feedlink5=params[4];
Log.e("MY LINK",feedlink1);
try {
DOMParser myParser = new DOMParser();
feed = myParser.parseXml(feedlink1);
feed2 = myParser.parseXml(feedlink2);
feed3 = myParser.parseXml(feedlink3);
feed4 = myParser.parseXml(feedlink4);
feed5 = myParser.parseXml(feedlink5);
if (feed != null && feed2 != null && feed3 != null && feed4 != null && feed5 != null) {
WriteFeed(feed);
WriteFeed(feed2);
WriteFeed(feed3);
WriteFeed(feed4);
WriteFeed(feed5);
} else {
Log.e("FEED", "IS NULL");
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
startNextActivity(feed);
}
}
【问题讨论】:
标签: java android multithreading exception android-asynctask