当前位置: 代码迷 >> Android >> 【诚心请问】Android超时导致数据与服务器不同步
  详细解决方案

【诚心请问】Android超时导致数据与服务器不同步

热度:104   发布时间:2016-04-28 06:51:50.0
【诚心请教】Android超时导致数据与服务器不同步
问题描述:
         android HttpURLConnection +  WebService 进行数据交互。
         
URL url = new URL(urlStr);
HttpURLConnection httpConn = (HttpURLConnection) url
.openConnection();
httpConn.setConnectTimeout(ConnectTimeout);//20s
httpConn.setReadTimeout(ReadTimeout);//200s
httpConn.setDoInput(true);
httpConn.setRequestMethod("GET");
httpConn.setRequestProperty("Content-type",
"application/json;charset=utf-8");

        现在的机能是,有一组号码在DB内,多台终端去取号,假如11001号被取到,那么这个状态立马更新,让别的终端取不到,除非他退出那个页面才能把这个状态再改回去,别的手机才能取到11001。 
       在现场作业的时候网络状态不佳,可能出现超时状态。经过测试,超时之后导致手机取不到数据,但是webService已经跟DB完成了数据更新。
        现在的紧急对策就是,链接超时设置20s 如果20s连webservice都连接不上 那么直接断开。读取数据设置200s。目的是如果20s内能够建立链接那么200s的读取数据时间应该足够了。 
------解决方案--------------------
个人感觉你在客户端无法很好解决这个问题,主要还是服务端的逻辑上要优化,比如当超时再不要修改DB状态什么的。
如要时效性要求高的话应该用socket来完成
  相关解决方案