恢复活动时检查Internet

时间:2011-06-22 06:55:18

标签: android

我有一个使用互联网的Android应用程序。如果互联网不可用,我会禁用活动中的所有按钮。但是当我在启用Internet后恢复活动时,按钮仍然处于禁用状态。 需要帮助。

3 个答案:

答案 0 :(得分:1)

每次恢复活动时都会检查互联网吗?顺便看一些代码会很棒。

答案 1 :(得分:1)

您必须在onResume中检查网络的可用性。我假设您已在清单文件中提供了<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />权限。我已经在下面给出了我测试过的代码,它为您提供了internet()_

的可用性状态
/**
 * Check whether Internet Connection is available or not(e.g., connected or
 * Disconnected)
 * 
 * @param context
 *            : Context of current Class
 * @return Boolean: true if connected false otherwise.
 */
public static final boolean isNetWork(Context context) {

    ConnectivityManager conMgr = (ConnectivityManager) context
            .getSystemService(Context.CONNECTIVITY_SERVICE);

    /** to get info of WIFI N/W : */
    final android.net.NetworkInfo wifi = conMgr
            .getNetworkInfo(ConnectivityManager.TYPE_WIFI);

    /** to get info of mobile N/W : */
    final android.net.NetworkInfo mobile = conMgr
            .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

    if ((wifi.isAvailable() && wifi.isConnected())
            || (mobile.isAvailable() && mobile.isConnected())) {
        Log.i("Is Net work?", "isNetWork:in 'isNetWork_if' is N/W Connected:"
                + NetworkInfo.State.CONNECTED);
        return true;
    } else if (conMgr.getActiveNetworkInfo() != null
            && conMgr.getActiveNetworkInfo().isAvailable()
            && conMgr.getActiveNetworkInfo().isConnected()) {
        return true;
    }
    return false;
}  

当您进入onResume时,请检查网络可用性_

/*In your on resume check I/N*/
@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();

    if (isNetWork(your_activity_name.this)) {
        //Your Code...
        yourButton.setEnabled(true);
    } else {
        //Your Code...
        yourButton.setEnabled(false);

    }
}

答案 2 :(得分:0)

也许使用onStop(),onResume()或您可能需要的生命周期中的方法,您应该隐藏破坏性方法上的按钮......这样每次用户重新进入活动时,您都可以检查连接< / p>