如果没有可用的网络连接,则不显示Toast

时间:2013-08-15 05:58:04

标签: android

如果网络不可用,我的代码不会显示Toast消息。这是我下面的代码...如果没有网络可用的吐司将不会显示。我的代码中的错误是什么?请帮帮我。

public class HomeMenu extends Activity {


    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.homemenu);

        if (!Utils.isNetworkAvailable(HomeMenu.this)) {
            Toast.makeText(HomeMenu.this, getString(R.string.no_internet), Toast.LENGTH_SHORT).show();
        }
    }
}

Util类:

public static boolean isNetworkAvailable(Activity activity) {
    ConnectivityManager connectivity = (ConnectivityManager) activity.getSystemService(Context.CONNECTIVITY_SERVICE);
    if (connectivity == null) {
        return false;
    } else {
        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;
 }

2 个答案:

答案 0 :(得分:0)

尝试更改互联网连接的代码:

public static boolean isNetworkAvailable(Activity activity) {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
// if no network is available networkInfo will be null
// otherwise check if we are connected
if (networkInfo != null && networkInfo.isConnected()) {
    return true;
}
return false; }

现在检查onCreate()方法:

if (!Utils.isNetworkAvailable(HomeMenu.this)) {
       Showtoast("No Connection Available.");
    }

void Showtoast(String message) {
Toast.makeText(HomeMenu.this, message, Toast.LENGTH_LONG).show();}

答案 1 :(得分:0)

尝试这个为我工作...使用req权限android.permission.ACCESS_NETWORK_STATE

public class HomeMenu extends Activity {

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.homemenu);
    if (!isUserOnline(this)) {
        toast("No Network");
    }

}

public static boolean isUserOnline(Context context) {
    try {
        ConnectivityManager nConManager = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        if (nConManager != null) {
            NetworkInfo nNetworkinfo = nConManager.getActiveNetworkInfo();

            if (nNetworkinfo != null) {
                return nNetworkinfo.isConnected();
            }
        }
    } catch (Exception e) {
    }
    return false;
}

void toast(String message) {
    Toast.makeText(this, message, Toast.LENGTH_LONG).show();
}

}