Android应用程序崩溃3G连接速度慢,但工作正常无线
问题描述:
我有一个小的Android应用程序,基本上执行http调用来检索一些网页信息,并解析它在本地显示的目的。Android应用程序崩溃3G连接速度慢,但工作正常无线
它在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());
}
答
你从活动或服务运行呢?在我自己的应用程序中,如果我从服务运行代码,则只会遇到此问题;它可以在wifi上正常工作,但在3G上崩溃,并且从不在活动中崩溃。
为了这个,我能找到固定的服务崩溃唯一的解决方法如下:
- 如果在无线网络连接,并使用服务,如果在3G使用的AsyncTask
- ,并使用服务,在主线程上运行
- 别人使用的AsyncTask
希望这有助于。
logcat中的错误消息是什么? – Haphazard 2011-05-21 21:57:04
是的,什么是错误和你在运行这个线程? – Fredrik 2011-05-22 01:19:29
这些任务在AsyncTask的doInBackground()中执行。在手机本身,它只是创建应用程序强制关闭错误。我会尝试在调试模式下重新创建错误,并在此处发布logcat错误。 – adjfac 2011-05-22 15:55:09