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

android(java)控制http连接超时的有关问题

2012-09-29 
android(java)控制http连接超时的问题声明一个boolean公共变量,表明当前httpconnection是否得到服务器回

android(java)控制http连接超时的问题

"声明一个boolean公共变量,表明当前httpconnection是否得到服务器回应。

你的连接线程中在连接之前置这个变量为false;

另起一个监视线程,拿到那个HttpConnection的连接对象,并循环监视这个boolean公共变量。如果指定时间内(20秒后)你的boolean公共变量还是false,那么就主动置httpconnection=null。这样,那边连接线程就会抛出异常退出来。"??-----zhengyun

写了Timer类来实现.(学习国外一个网站上的写法)

class?Timer?extends?Thread?{
??
??protected?int?m_rate?=?100;

??
??private?int?m_length;

??
??private?int?m_elapsed;

??
??public?Timer(int?length)?{
???//?Assign?to?member?variable
???m_length?=?length;

???//?Set?time?elapsed
???m_elapsed?=?0;
??}
??

??public?synchronized?void?reset()?{
???m_elapsed?=?0;
???System.out.println("reset?timer");
??}
??
??public?synchronized?void?setTimeOut()
??{
???m_elapsed?=?m_length+1;
??}

??
??public?void?run()?{
???//?循环

???System.out.println("timer?running");
???for?(;;)?{
????//?Put?the?timer?to?sleep
????try?{
?????Thread.sleep(m_rate);
????}?catch?(InterruptedException?ioe)?{
?????continue;
????}

????synchronized?(this)?{
?????//?Increment?time?remaining

??m_elapsed?+=?m_rate;

?????//?Check?to?see?if?the?time?has?been?exceeded
?????if?(m_elapsed?>?m_length?&&?!isConnActive)?{?//isConnActive?为全局变量
??????//?Trigger?a?timeout
??????timeout();
??????break;
?????}
????}

???}
??}

??
??public?void?timeout()?{
??????httpConnection?=?null;
??????System.out.println("conn?time?>?"?+?TIME_OUT?+?"?ms");
????}
?}


?

在http连接线程调用的同是调用?new?Timer(20*1000).start();

需要重新计时时候调用timer.reset();

热点排行