在android中处理慢速互联网连接

时间:2015-04-13 22:56:13

标签: android

从远程服务器获取JSON数据并在触发asynctask之前在下面的代码的帮助下检查互联网连接的可用性

    if (isOnline()==true){

        new DownloadJSON().execute();

    }
    //do whatever you want to do
    else
    {
        try {


            Toast.makeText(context, "Slow or No Internet Connection", Toast.LENGTH_SHORT).show();

        }
        catch(Exception e)
        {

        }
    }


 public boolean isOnline() {

    try {
       Process p1 = Runtime.getRuntime().exec("ping -c 1 www.google.com");
        int returnVal = p1.waitFor();
        boolean reachable = (returnVal == 0);
        if (reachable) {


            return true;
        } else {

            return false;
        }

    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        p1.destroy();
    }

    return false;


}

这适用于没有互联网连接。即使它适用于类似的情况,有wifi但没有互联网接入。但问题是,如果互联网连接缓慢并被强制关闭,它会使我的活动失效。

请指导我如何为isOnline()添加超时值,或者是否有更好的方法来处理catch块中的此类错误

1 个答案:

答案 0 :(得分:0)

为什么不使用AsyncTask class?它不会阻止UI线程。