首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

新人问一个简单的有关问题,有关网络超时的

2013-11-08 
新人问一个简单的问题,有关网络超时的我是新手,这两天做了做了一个学院新闻的客户端,但也发现了一些问题,

新人问一个简单的问题,有关网络超时的
我是新手,这两天做了做了一个学院新闻的客户端,但也发现了一些问题,有时候学校的服务器会停止维护,有时候会网络连接超时,出现这些情况时,我想让程序提示用户,而不是强制退出,怎么解决?

new Thread()
  {
  public void run()
  {
  String mytitle = null; 
  String mytime=null;
  try  
  {  
  mytitle = new String(); 
  mytime=new String();
  Elements topnews ;
  Document doc = Jsoup.connect(getnewPage(id,page)).timeout(3000).get();
  if("4".equals(id))
  {
  topnews = doc.getElementsByClass("list");
  }
  else
  {
  topnews = doc.getElementsByClass("contList"); 
  }
  Elements links = topnews.select("a[href]");  
  Elements time=topnews.select("td[width=80]");
  if("4".equals(id))
  {
  for (int i=0;i<15;i++) { 
  map=new HashMap<String,Object>();
  mytitle=links.get(i+2).text(); 
  Log.e("aaaaaaa", mytitle);
  pagelink[i+1]=links.get(i+2).attr("abs:href");
  mytime=time.get(i).text();
  map.put("title", mytitle);
  map.put("time", mytime); 
  lists.set(i+1, map);
  
  }
  
  }
  else
  {
  for (int i=0;i<links.size();i++) { 
  map=new HashMap<String,Object>();
  mytitle=links.get(i).text(); 
  Log.e("aaaaaaa", mytitle);
  pagelink[i+1]=links.get(i).attr("abs:href");
  mytime=time.get(i).text();
  map.put("title", mytitle);
  map.put("time", mytime); 
  lists.set(i+1, map);
  
  }
  }  
         
  Message m=new Message();
  m.what=1;
  mainTab.this.handler.sendMessage(m);
         
  }  
  catch (Exception e)  
  {  
  mytitle = e.getMessage();  
  Toast.makeText(mainTab.this, "网络未开启或者连接超时", Toast.LENGTH_LONG).show();
  e.printStackTrace();  
  }
  finally
  {
  dialog.dismiss();
  }

  }
  }.start(); 
网络 exception android 超时
[解决办法]
网络请求时异常错误是有很多不同的;超时是SocketTimeOutException ;你在Exception 这个异常捕捉之前
捕捉下超时的异常;
根据不同的异常 你可以给与不同的toast信息提示用户;
看了你的代码 timeout(3000)大概的意思是3000毫秒 (我猜的)你用的这个 我没见过也懒得去找了; 你可以改动这个值
来设置超时时间
[解决办法]
一般来说,设置一个超时时间,一般http会是5000毫秒,超时之后就提示用户重新加载或者做其他
[解决办法]
一楼说的不错,在报错的地方try,catch就行了,错误类型SocketTimeOutException 
[解决办法]
设置超时时间,捕捉异常,将异常通知到UI线程,就好了

热点排行