java - 关于访问互联网连接的建议

标签 java android static-methods

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

连接检测器.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 
}

请告诉我有什么区别?? 用上下文定义对象是个坏主意还是使用类的静态方法??

最佳答案

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

关于java - 关于访问互联网连接的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29191930/

相关文章:

java - 使受包保护的 java 类在父包中可见

android - 果冻 bean 应用程序在电话中被杀死

android - 如何从钛工作室android项目中的另一个js文件访问一个js文件

java - 具有不同帧速率的动画 gif 使用 Java 加载不正确

java - 阻止 Blob URL 过期

java - 带有 Thymeleaf 的 Spring Boot 显示错误但可以正常工作

android - 打开/关闭位置时,FusedLocationProviderClient 无法正常工作

c - 以灵活且不显眼的方式在 C 中扩展 API

c# - 按值检索自定义枚举类的正确方法是什么?

c++ - 如何重载operator new来实现类的快速分配器?