你将请求的超时时间设置成10秒吧.
虽然我没有写过,但你的问题中能看出来,是请求百度接口超时了..
我设置了setTimeOut()超时连接设置,但是还是没有反应....
@D调的程序员: 你是这样写的吗?
private static final int REQUEST_TIMEOUT = 10*1000;//设置请求超时10秒钟 private static final int SO_TIMEOUT = 10*1000; //设置等待数据超时时间10秒钟 public HttpClient getHttpClient(){ BasicHttpParams httpParams = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(httpParams, REQUEST_TIMEOUT); HttpConnectionParams.setSoTimeout(httpParams, SO_TIMEOUT); HttpClient client = new DefaultHttpClient(httpParams); return client; }
@hexllo: 你那个是访问htt请求,我这个是百度sdk, 百度有进行封装过的...不过谢谢你的热心解答.
private void startLocaltion(){//开启定位 locationClient = new LocationClient(this); LocationClientOption option = new LocationClientOption(); option.setOpenGps(true); option.setCoorType("bd09ll"); option.setPriority(LocationClientOption.GpsFirst); option.setProdName("SanlenLocation"); option.setScanSpan(SWWConstant.UPDATE_TIME); int time=option.getTimeOut(); System.out.println("超时设置时间"+time); option.setTimeOut(500);//设置超时无效 locationClient.setLocOption(option); locationClient.registerLocationListener(this); locationClient.start(); if (locationClient != null && locationClient.isStarted()) { locationClient.requestLocation(); } }
@D调的程序员: 好吧,你看这样的思路能实现不?写一个全局变量来存放SDK的返回状态,成功或失败,在
在调用SDK的开始新开一个计时线程,线程sleep(5000)后,来检查全局变量..如果为true,就表示调用成功,为false就弹出提示,并将调用SDK的线程关掉...
这是我想像的,不知道能不能实现.
@hexllo: 这个逻辑上是可以实现的......但是感觉会比较麻烦......代码很臃肿....
@hexllo: 我按照这个思路解决的 谢谢你