如何知道互联网连接是否存在?

时间:2012-02-24 11:13:09

标签: android connection

要检测互联网是否已连接,我使用以下代码:

             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;
                }
            }

哪种工作完全正常。

但是我想知道当应用程序从服务器下载一些文件时,互联网连接是否会消失(我的意思是介于这个过程之间)是否有检测到并显示互联网连接丢失或弱的情况?

2 个答案:

答案 0 :(得分:4)

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

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

对于您的特定情况,我编写了一个可在以下位置获得的超类:https://github.com/sfarooq/A-droid-lib/ 查看ConnectedActivity包中的network类。它会在连接丢失时显示一个对话框,并在连接恢复时将其解除。要使用它,只需在您想要的ConnectedActivity中扩展Activities即可。要在整个应用程序中使用它,我建议如上所述制作自己的超类,并扩展ConnectedActivity以便以后可以更改内容(如果您想稍后添加自定义对话框和菜单也很有帮助,那么'' ll只需要将它添加到你的超类中。)

答案 1 :(得分:2)

有特殊的系统操作,通知应用程序有关更改Internet访问状态的信息。要获得它,您需要创建BroadcastReceiver。 有关详细信息,请参阅this问题。