我正在开发可在应用启动时运行我的Web服务的android应用。我的应用程序基本上是设备的家庭应用程序。因此,这意味着当用户重新启动设备时,我的应用程序将出现在他的面前。
到目前为止,那太好了。但我注意到,在应用启动时,设备需要5到10秒才能连接互联网。而我的Web服务在建立Internet之前运行,因此抛出错误“发生错误,请稍后再试。”
我想要的内容:尽管我正在显示该消息,但我确实不满意,因为我确实希望向用户显示消息。该消息应为“设备正在连接到互联网”
但不幸的是,我无法这样做。我正在使用以下代码
public static boolean isNetworkAvailable(Context context) {
ConnectivityManager connectivityManager
= (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnectedOrConnecting();
}
但它确实指示我是否已连接网络。
在这种情况下,我无法显示“请等待设备正在连接到互联网”这样的消息
或者我怎么能重启设备而不是重启唯一的应用程序。 ...请帮助
答案 0 :(得分:0)
在活动(在此处https://developer.android.com/guide/components/broadcasts中的文档)中注册本地(或清单中声明的)广播接收器,并使用以下意图过滤器IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION)
来监听连接更改。
然后检查设备是否与您发布的代码建立了互联网连接。
请记住在onResume()方法中注册您的广播接收器,并在onPause()方法中注销它。
您可以使用registerDefaultNetworkCallback https://developer.android.com/reference/android/net/ConnectivityManager.html#registerDefaultNetworkCallback(android.net.ConnectivityManager.NetworkCallback)
回调有一个称为“ onAvailable” https://developer.android.com/reference/android/net/ConnectivityManager.NetworkCallback.html#onAvailable(android.net.Network)的公共方法,当准备使用新网络时会调用该方法。