在 Android 应用程序中,广播接收器用于监视系统或特定事件的变化。一种常见的用例是检查互联网连接。但是,在某些情况下,可能需要将接收器的调用限制在网络连接可用的实例中。
遇到的常见挑战是接收器即使网络可能不可用,也会被呼叫两次。这可以归因于在接收者的清单声明中添加了多个意图过滤器。要解决此问题,只需使用一项操作来更改网络连接即可,例如:
<intent-filter> <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> </intent-filter>
要解决第二个问题,接收者应该仅在网络连接可用时触发,提供的代码有效地满足了此要求。它监视 WiFi 和移动网络的可用性,并且仅在其中任何一个已连接时发出通知。
要使用更简单的方法来验证互联网连接,请考虑以下函数:
public boolean isOnline(Context context) { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo netInfo = cm.getActiveNetworkInfo(); //should check for null as it will be null in airplane mode return (netInfo != null && netInfo.isConnected()); }
此方法提供了一种简洁的方法来确定移动设备是否连接到网络。
以上是如何使用广播接收器可靠地检测 Android 应用程序中的互联网连接变化?的详细内容。更多信息请关注PHP中文网其他相关文章!