我实际上使用下面的代码检查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
}
请让我知道什么是差异? 使用上下文定义的对象是一个坏主意还是使用类的静态方法?
答案 0 :(得分:1)
您的原始代码没有错。但是,建议的替换稍微好一点,因为它更容易使用。正如您自己所看到的,您的原始代码需要两行来创建一个对象并调用检查方法,而替换只是一行(一个方法调用)。