Android 如果网络不可用,我的应用程序会显示toast消息

Android 如果网络不可用,我的应用程序会显示toast消息,android,Android,网络不可用或禁用时,我的应用程序未显示toast消息?我在下面插入了我的代码,它似乎没有检查连接是否可用。请帮助我,当网络可用时,它工作正常,但当我禁用网络时,它没有显示错误消息,因为没有其他可用网络 if (position == 2) { final ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

网络不可用或禁用时,我的应用程序未显示toast消息?我在下面插入了我的代码,它似乎没有检查连接是否可用。请帮助我,当网络可用时,它工作正常,但当我禁用网络时,它没有显示错误消息,因为没有其他可用网络

if (position == 2)

{

    final ConnectivityManager connMgr = (ConnectivityManager)  
            getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connMgr  
            .getActiveNetworkInfo();
    android.net.NetworkInfo mobile1 =  
            connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

    if (activeNetworkInfo == null) {
        Toast.makeText(LoginScreen.this, "No   
                Active Network",Toast.LENGTH_LONG).show();
    } else {

        if (activeNetworkInfo.isConnected()) {

            btnLogin.setOnClickListener(new OnClickListener() {


                public  void onClick(View view) {
                    String pinemptycheck = pin.getText().toString();
                    String mobileemptycheck = mobile.getText().toString();
                    if  (pinemptycheck.trim().equals("")||  
                            (mobileemptycheck.trim().equals("")))
                    {


                        Toast.makeText(getApplicationContext(), "Please Enter Correct Information",  
                                Toast.LENGTH_LONG).show();


                    } 


                    else
                    {

                        showProgress();
                        postLoginData();
                    }

                }
            });
        } else if  
        (activeNetworkInfo.isConnectedOrConnecting()) {

            Toast.makeText(LoginScreen.this,    "network is Connecting", Toast.LENGTH_LONG)  
            .show();
        } else if (mobile1.isAvailable()) {

            btnLogin.setOnClickListener(new  
                    OnClickListener() {

                public  void onClick(View view) {

                    showProgress();

                    postLoginData();                                    

                }
            });
        } else if (!mobile1.isAvailable()) {

            Toast.makeText(LoginScreen.this,"No other Connection Found  
                    ",Toast.LENGTH_LONG).show();
                    btnLogin.setOnClickListener(new OnClickListener() {
                        public void onClick(View v)

                        {

                            Toast.makeText(LoginScreen.this," No other Connection Found", Toast.LENGTH_LONG).show();
                        }

                    });
        }}}

问题是,您应该在onClickListener内部检查连接可用性,而不是在onClickListener之上


背后的原因是,假设onCreate调用时网络存在,因此它始终为真。因此,请在单击按钮时检查连接是否可用。

您的代码太乱,使用Log&检查您想要的方法调用与否。只需告诉我typemobile检查哪个网络?这两行之间的区别是什么NetworkInfo activeNetworkInfo=connMgr.getActiveNetworkInfo();NetworkInfo mobile1=connMgr.getNetworkInfo(ConnectivityManager.TYPE\u MOBILE);你能设置断点并进行调试,看看满足了哪些条件吗?如果网络不可用,请始终进入此条件,如果(activeNetworkInfo.isConnected()){在此if块中,请进入此条件并运行应用程序