我实际上使用下面的代码来检查 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/