我制作了一款应用。该应用程序需要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
ConnectionDetector
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那样耗尽电池指出了
答案 0 :(得分:0)
请参阅此答案:How to check internet access on Android? InetAddress never times out
但是我想指出一些你可能忽略的事情:检查持续的互联网连接是否会消耗能量。很多力量。所以,你最终可能会耗尽用户的电池(这将产生很多负面影响,而不仅仅是糟糕的评论)。
那么,也许我们可以谈谈为什么你需要经常检查互联网连接?您可能希望了解如何缓冲网络请求或缓存等。随意编辑这个问题,甚至创建一个新问题,只需链接到它:)