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