用android检查互联网连接

时间:2013-06-17 00:40:08

标签: android android-networking android-internet

我制作了一款应用。该应用程序需要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那样耗尽电池指出了

1 个答案:

答案 0 :(得分:0)

请参阅此答案:How to check internet access on Android? InetAddress never times out

但是我想指出一些你可能忽略的事情:检查持续的互联网连接是否会消耗能量。很多力量。所以,你最终可能会耗尽用户的电池(这将产生很多负面影响,而不仅仅是糟糕的评论)。

那么,也许我们可以谈谈为什么你需要经常检查互联网连接?您可能希望了解如何缓冲网络请求或缓存等。随意编辑这个问题,甚至创建一个新问题,只需链接到它:)