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