【问题标题】:How to know that internet connection is there or not?如何知道互联网连接是否存在?
【发布时间】:2012-02-24 11:13:08
【问题描述】:

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

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

效果很好。

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

【问题讨论】:

标签: android connection


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      • 2014-01-21
      • 2019-09-03
      相关资源
      最近更新 更多