我做一个应用程序。该应用程序需要互联网进行 5 项活动,其他 4 项活动不需要互联网。
需要互联网的活动需要它,因为他们必须执行 CRUD 并对网站进行 httppost 以与数据库进行通信。所以目前在 onCreate 我会检查这样的互联网连接
ConnectionDetector cd = new ConnectionDetector(getApplicationContext());
Boolean isInternetPresent = cd.isConnectingToInternet(); // true or false
if(isInternetPresent)
Log.e("Internet available","Internet available");
//Do httpPost logic here
else
Log.e("Internet not available","Internet not available");
//Tell the user that he needs internet
连接检测器
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;
}
}
但是在onCreate 之后呢?如果用户进入活动,检查通过 onCreate,他填写表格然后他与互联网断开连接怎么办。我如何检查这部分?以及如何用我当前的代码实现它?这就是为什么在第一个要求中我想要不断检查互联网连接。但这会像 cbrulak 指出的那样耗尽电池电量