有关访问互联网连接的建议

时间:2015-03-22 07:17:38

标签: java android static-methods

我实际上使用下面的代码检查Android应用程序的互联网连接

ConnectionDetector.java

package com.example.detectinternetconnection;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

public class ConnectionDetector {

    private Context _context;

    public ConnectionDetector(Context context){
        this._context = context;
    }

    public boolean isConnectingToInternet(){
        ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE);
          if (connectivity != null) 
          {
              NetworkInfo[] info = connectivity.getAllNetworkInfo();
              if (info != null) 
                  for (int i = 0; i < info.length; i++) 
                      if (info[i].getState() == NetworkInfo.State.CONNECTED)
                      {
                          return true;
                      }

          }
          return false;
    }
}

要求的方法是:

ConnectionDetector cd = new ConnectionDetector(getApplicationContext());

Boolean isInternetPresent = cd.isConnectingToInternet();

但是, 最近有人建议我说使用它,并且根本不相信使用。需要你们所有才华横溢的人的帮助,建议我是否写错了代码? 建议用于我的代码:

public class ConnectionDetector {

    public static  boolean isConnectingToInternet(){
        ConnectivityManager connectivity = (ConnectivityManager) applicationcontext.getSystemService(Context.CONNECTIVITY_SERVICE);
          if (connectivity != null) 
          {
              NetworkInfo[] info = connectivity.getAllNetworkInfo();
              if (info != null) 
                  for (int i = 0; i < info.length; i++) 
                      if (info[i].getState() == NetworkInfo.State.CONNECTED)
                      {
                          return true;
                      }

          }
          return false;
    }
}

像这样使用的代码

if(ConnectionDetector.isConnectingToInternet){
     // true and code 
}

请让我知道什么是差异? 使用上下文定义的对象是一个坏主意还是使用类的静态方法?

1 个答案:

答案 0 :(得分:1)

您的原始代码没有错。但是,建议的替换稍微好一点,因为它更容易使用。正如您自己所看到的,您的原始代码需要两行来创建一个对象并调用检查方法,而替换只是一行(一个方法调用)。