Android网络超时处理

来源:互联网 发布:优化创新创业生态环境 编辑:程序博客网 时间:2024/04/30 02:29

1.网络连接自然会有超时,如果一直停留在等待页面则会出现卡死的情况,所以一般都需要进行网络超时的处理。

如果你使用的网络技术自身支持超时,那么就恭喜你,这些就可以交给系统去做了,你只需要设置一个超时时间即可了。如果不支持,自己处理起来也不难。

处理的方法是:

一般你的程序中都会有一个线程(如果实在没有则只能新创建一个了),当开始联网时,使用这个线程进行即时,如果时间达到超时时间,例如30秒,则“停止”联网线程。

但是一般联网线程都是无法停止的,所以我们可以采用一种变通的方式,就是如果超时则丢弃联网的数据反馈。示例代码为:

public classHttpThread extends Thread{

           public boolean isAbandon;

public void run(){

         //联网代码

         //调用监听器方法处理反馈

         if(!isAbandon){

                  listener.doResponse(b);

}

}

}

这样,如果超时则只需要设置:

           http.isAbandon =true;

其中http是联网线程对象。

2、  联网中断处理

在联网等待界面中,一般会设置一个“取消”按钮,可以运行用户在联网时取消该连接,处理的方式和5、网络超时处理的原理一样,只是一般还会涉及到界面的切换等。

3、  XML?

很多人可以会遇到传输的数据以xml的格式进行传输,在当前的2G网络下还是不建议这么做,还是自己设计一套紧凑的数据格式,无论是在数据量还是传输速度上都要好一些。


原创粉丝点击