首页 > 解决方案 > 检查网络连接时 getSystemService() 上出现 NullPointerException

问题描述

当我在一个片段中检查与 Internet 的连接时,我收到错误 NullPointerException,但在其他片段中它工作得非常好。

public static boolean isOnline() {
    ConnectivityManager connectivityManager = (ConnectivityManager)
            Injection.provideZiauddinAppInstance()
                    .getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
    if (networkInfo != null && networkInfo.isAvailable() && networkInfo.isConnected()) {
        return true;
    }
    return false;
}

标签: androidandroid-fragmentsnullpointerexception

解决方案


创建一个类 ConnectivityReceiver :

public class ConnectivityReceiver {

    public static boolean isNetworkConnected(Activity activity) {

        ConnectivityManager cm = (ConnectivityManager) activity.getSystemService(Context.CONNECTIVITY_SERVICE);

        return cm.getActiveNetworkInfo() != null;
    }
}

然后在任何你想要的地方使用这样的:

if (ConnectivityReceiver.isNetworkConnected(this)) {
//do your things
}

推荐阅读