- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我遇到了 registerDefaultNetworkCallback和 registerNetworkCallback在为 API 28 更新我的 Android 应用程序时。
查看文档后,我找不到注册网络回调和注册默认网络回调之间的区别。
什么时候用哪个?
提前致谢:)
最佳答案
据我了解,registerDefaultNetworkCallback
和 registerNetworkCallback
之间的区别仅基于自定义。registerDefaultNetworkCallback
作为默认网络监听器工作(令人惊讶),而 registerNetworkCallback
它更具可配置性。例如:
val connectivityManager = getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val builder = NetworkRequest.Builder()
builder.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
val networkRequest = builder.build()
connectivityManager.registerNetworkCallback(networkRequest,
object : ConnectivityManager.NetworkCallback () {
override fun onAvailable(network: Network?) {
super.onAvailable(network)
Log.i("Test", "Network Available")
}
override fun onLost(network: Network?) {
super.onLost(network)
Log.i("Test", "Connection lost")
}
})
此处 onAvailable
仅当用户连接到蜂窝网络时才会被调用(通过连接到 WiFi,它不会记录任何内容)。与蜂窝网络断开连接时 onLost
也是如此。
如果我们这样做:
connectivityManager.registerDefaultNetworkCallback(object : ConnectivityManager.NetworkCallback() {
override fun onAvailable(network: Network?) {
super.onAvailable(network)
Log.i("Test", "Default -> Network Available")
}
override fun onLost(network: Network?) {
super.onLost(network)
Log.i("Test", "Default -> Connection lost")
}
})
当用户连接(或断开连接)网络(可以是 WiFi 或蜂窝网络)时,这两个函数都用作默认回调。
这些只是一些非常基本的例子。当然NetworkRequest
可以有很多配置,通过设置它的capability
或者transportType
。您可以在 NetworkRequest 的官方文档中阅读更多相关信息.
关于java - registerDefaultNetworkCallback 和 registerNetworkCallback 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53863034/
我遇到了 registerDefaultNetworkCallback和 registerNetworkCallback在为 API 28 更新我的 Android 应用程序时。 查看文档后,我找不到
我是一名优秀的程序员,十分优秀!