我正在使用AndroidHttpClient向登录页面发出https发布请求。客户端实例创建如下:
AndroidHttpClient client = AndroidHttpClient.newInstance("Android");
在向https://mydomain.com/login发出请求后,我的活动在以后调用client.close()时崩溃。
连接返回一个有效的响应,当不在同一个域(http://mydomain.com/login)上使用ssl时,一切正常,我可以调用client.close()而不会崩溃。
我没有查看源代码,但Android的文档非常简短,只是说应该调用.close来释放与客户端相关的资源。这是预期的行为还是我错过了其他的东西?是否有更好的方法来关闭/释放此类对象的资源?
答案 0 :(得分:1)
关于您的NetworkOnMainThreadException:
在UI线程上执行onPreExecute,onProgressUpdate和onPostExecute这三个方法。这是AsyncTasks的要点之一。
因此,请将close()
来电转移至doInBackground()
。
答案 1 :(得分:0)
抱歉,这是一个愚蠢的问题,并且与在onPostExecute中调用client.close()有关,我想在主线程中执行它?将其移入doInBackground方法可以解决问题。