Android AsyncTask在多个互联网下载时崩溃

时间:2011-12-30 16:13:34

标签: android android-asynctask

我的代码从服务器中提取JSON。 JSON具有图像URL。我解析JSON并将JSON中URL的图像下载到Bitmap Hashtable中以停止同一图像的多次下载。当我在UI线程上运行此应用程序时,应用程序会变慢但工作正常。在将其移动到AsyncTask时,应用程序崩溃并出现致命错误:java.lang.RuntimeException:执行doInBackground时发生错误()

可能出现什么问题?

以下是异步代码http://pastebin.com/isDgENkJ

1 个答案:

答案 0 :(得分:1)

将您的class声明更改为:

public class GetMapsAsync extends AsyncTask<Void,Void, CustomItemizedOverlay>{

您的doInBackgournd()方法应如下所示:

protected CustomItemizedOverlay doInBackground(Void... v){

doInBackgournd()内删除此行:

mapOverlays.add(itemizedOverlay);

并将此行代替return null;放在doInBackgournd()内的结尾处:

return itemizedOverlay;

您的onPostExecute()方法应如下所示:

@Override
protected void onPostExecute(CustomItemizedOverlay overlay) {
     mapOverlays.add(overlay);
}

如果你仍然看到任何Exception,那么也发布你的logcat。