Java 我如何检查网络在我的android应用程序运行期间的状态是否发生了变化?
我正在为android开发一个应用程序,它需要网络来从xml文件中检索一些信息。我有这样一个代码,用于查找用户是否启用了网络:Java 我如何检查网络在我的android应用程序运行期间的状态是否发生了变化?,java,android,Java,Android,我正在为android开发一个应用程序,它需要网络来从xml文件中检索一些信息。我有这样一个代码,用于查找用户是否启用了网络: public boolean isOnline() { ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo netInfo = cm.getActiveNetworkInfo()
public boolean isOnline() {
ConnectivityManager cm =
(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnected()) {
return true;
}
return false;
}
我是这样使用这个函数的:
boolean connected = isOnline();
if(connected)
getLocation();
else
showDialogNetwork();
函数showDialogNetwork():
public void showDialogNetwork() {
new AlertDialog.Builder(this)
.setMessage("No network")
.setTitle("Error")
.setCancelable(false)
.setPositiveButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// launch settings
Intent settings = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);
startActivity(settings);
}
})
.setNegativeButton(android.R.string.cancel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dialog.dismiss();
// finish activity
finish();
}
})
.show();
}
如果设备上的网络被禁用,showDialogNetwork()将打开设置菜单中的网络选项卡。但是当用户打开WiFi,并且应用程序在后台运行时,它并不“理解”网络已经打开。我需要在网络打开后“杀死”应用程序,以便从互联网上获取信息。如何在应用程序运行期间不断检查网络状态是否发生变化?提前感谢,伙计们:)创建一个带有
意向过滤器的BroadcastReceiver
,该过滤器“监听”了
WifiManager.NETWORK_STATE_CHANGED_ACTION
您可以在代码中注册,或者如果您在清单中注册了BroadcastReceiver
,则对
看
要同时监控移动互联网连接的变化,您需要“倾听”以下信息:
在这种情况下,请在清单中使用以下内容
android.net.conn.CONNECTIVITY_CHANGE
创建一个BroadcastReceiver
,其中包含一个IntentFilter
,用于“侦听”以下内容
WifiManager.NETWORK_STATE_CHANGED_ACTION
您可以在代码中注册,或者如果您在清单中注册了BroadcastReceiver
,则对
看
要同时监控移动互联网连接的变化,您需要“倾听”以下信息:
在这种情况下,请在清单中使用以下内容
android.net.conn.CONNECTIVITY_CHANGE
您还可以使用TelephonyManager侦听对数据连接的更改-
)
更好的是,注册android.net.conn.CONNECTIVITY\u更改广播操作,包括wifi、数据等-
您还可以使用TelephonyManager监听数据连接的更改-
)
更好的是,注册android.net.conn.CONNECTIVITY\u更改广播操作,包括wifi、数据等-