我有一个小型Android应用程序,基本上执行http调用以检索一些网页信息并在本地解析它以用于显示目的。
在wifi上工作正常。但是,在提交http查询后,应用程序在3G上时会随机崩溃(不是所有时间,但经常足够)。通常我只能重新启动应用程序,尝试执行相同的任务,它将按预期工作。我有点试图调试这个问题。它是由慢速互联网连接引起的吗?丢包?我可以在那里放什么样的检查代码来防止这种情况发生?
一些示例代码:
HttpClient client = new DefaultHttpClient();
HashMap<String, String[]> hmSearchResults = null;
HttpGet getMethod = new HttpGet(url);
try {
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String resultPage = client.execute(getMethod, responseHandler);
// I am think the error is here if resultPage == null due to
// whatever reason, is there any check I can put around
// client.execute?
hmSearchResults = ParseHtml.getSearchResultText(resultPage, numRequestResults);
} catch (Throwable t) {
Utility.showToast(this,"Request failed: " + t.toString());
}
答案 0 :(得分:0)
您是从活动还是通过服务运行此操作?在我自己的应用程序中,如果我从服务运行代码,我只会遇到此问题;它在wifi上完美运行,但在3G上崩溃,并且从不在活动中崩溃。
我找到修复服务崩溃的唯一解决办法如下:
希望这有帮助。