2012-02-24 59 views
3

要检测网络是否连接不是我使用下面的代码:如何知道互联网连接是否存在?

   public boolean netConnect(Context ctx) 
      { 

       ConnectivityManager cm; 
       NetworkInfo info = null; 
       try 
       { 
        cm = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE); 
        info = cm.getActiveNetworkInfo(); 
       } 
       catch (Exception e) 
       { 

        e.printStackTrace(); 
       } 
       if (info != null) 
       { 
        return true; 

       } 
       else 
       { 
        return false; 
       } 
      } 

这是工作完全正常。

但我想知道当应用程序正在从服务器下载某些文件(我的意思是说在过程之间)时,互联网连接是否关闭,无论如何检测并显示互联网连接丢失或弱?

+0

你可以从这里走refence: http://stackoverflow.com/questions/4238921/android-detect-whether-there-is-an-internet-connection-available/4239019#4239019 – 2012-02-24 11:20:34

回答

4

您必须在所有Activities中使用BroadcastReceiver。我最终最终为此写了一个超级班。

现在,每当我写一个App我不延长Activity,我总是扩展了我创建一个虚拟类说MyActivity。这样,只要需求发生变化,我只更改MyActivity,我的所有课程都会更新。

为您的特定情况下,我写了一个超类,请访问:https://github.com/sfarooq/A-droid-lib/ 看在networkConnectedActivity类。无论连接何时丢失,它都会显示一个对话框,并在连接恢复时解除连接。要使用它只需在您想要的Activities中延伸ConnectedActivity。要在整个应用程序中使用它,我建议按照上面提到的制作自己的超类,并将其扩展为ConnectedActivity,以便稍后可以更改内容(如果稍后要添加自定义对话框和菜单,也很有帮助,您只需要将它添加到你的超类)。

2

有特殊的系统操作,通知应用程序有关更改互联网访问状态。为了得到它,你需要创建BroadcastReceiver。 有关更多信息,请参阅this问题。

相关问题