0

我已经研究了这里的大部分问题,但没有找到可行的解决方案。

我正在设计一个高度使用互联网连接的应用程序。我永远需要从 Web 服务请求/接收信息。

我已经尝试过使用互联网的所有代码

    try
    {
       //use of internet here
    }
   catch (Exception e)
   {
          //Alert dialog that states internet connection is down
   }

但这似乎不起作用。由于某种原因,这里没有捕获异常。

我尝试了一种解决方法,我在这里找到了一个解决方案。用于:

 public static boolean isOnline(Context context) {
    ConnectivityManager cm =(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    if (netInfo != null && netInfo.isConnectedOrConnecting()) {
        return true;
    }
    return false;
}

并像这样使用它:

        if (Utilities.IsOnline(context))
         {
          //Code that uses internet
         }

如果在 IsOnline 检查后立即丢失连接会发生什么?我该如何治疗这种情况?谢谢!

4

1 回答 1

1

检查后检查互联网是否出现故障的唯一方法isOnline是注册一个BroadcastReceiver监听网络连接更改的监听器。在这个答案中有一个完整的代码示例。

我建议,如果您还没有这样做,请在其中运行您的代码,AsyncTask以便它可以运行自己的循环(或一系列语句)并检查每个循环/迭代/计算的连接状态,如果断开连接则停止。

于 2012-09-17T21:14:14.683 回答