android - 检查 fragment 中的网络连接

标签 android android-networking

我试图检查我的 SherlockFragment 中的网络连接,但无法识别 getSystemService() 方法。

下面是我的代码(来自http://developer.android.com/training/basics/network-ops/connecting.html)

    ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
    if (networkInfo != null && networkInfo.isConnected()) {
        // fetch data
    } else {
        // display error
    }

提前致谢

最佳答案

方法getSystemService()没有定义在fragments上,所以首先使用getActivity()获取activity,例如:

ConnectivityManager connMgr = (ConnectivityManager) getActivity()
                             .getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();

if (networkInfo != null && networkInfo.isConnected()) {
    // fetch data
} else {
    // display error
}

p.s:附加说明:如果 fragment 在未附加到任何 Activity 的情况下运行存在潜在风险,请检查 getActivity() 首先返回 null

干杯!

关于android - 检查 fragment 中的网络连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16481334/

相关文章:

java - 如何在 Android 中明确禁用 HTTP 连接的分块流模式?

android - Android 网络库 : OkHTTP, Retrofit 和 Volley 的比较

android - 如何从 url 下载文件/图像到你的 android 应用程序

java - 用于检测网络是否可用的后台线程

Android SDK 和 Eclipse

java - Android4OpenCV : setting resolution at startup

android - Android中使用NDK编译回声消除

android - Flutter List<Dynamic> 应该是 List<DataRow>

android - Android Wear 通知的自定义 UI

安卓 : Wireless access point session timeout and HostnameValidation errors