我是新手,这两天做了做了一个学院新闻的客户端,但也发现了一些问题,有时候学校的服务器会停止维护,有时候会网络连接超时,出现这些情况时,我想让程序提示用户,而不是强制退出,怎么解决?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(); 网络exceptionandroid超时
{
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(); 网络exceptionandroid超时
捕捉下超时的异常;
根据不同的异常 你可以给与不同的toast信息提示用户;
看了你的代码 timeout(3000)大概的意思是3000毫秒 (我猜的)你用的这个 我没见过也懒得去找了; 你可以改动这个值
来设置超时时间