web服务监测网络变化,及时更新IP
This commit is contained in:
@@ -23,15 +23,22 @@ class NetworkChangedListener(private val context: Context) {
|
|||||||
return@lazy null
|
return@lazy null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private val networkCallback: ConnectivityManager.NetworkCallback? by lazy {
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||||
|
return@lazy object : ConnectivityManager.NetworkCallback() {
|
||||||
|
override fun onAvailable(network: Network) {
|
||||||
|
onNetworkChanged?.invoke()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return@lazy null
|
||||||
|
}
|
||||||
|
|
||||||
fun register() {
|
fun register() {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||||
connectivityManager.registerDefaultNetworkCallback(
|
networkCallback?.let {
|
||||||
object : ConnectivityManager.NetworkCallback() {
|
connectivityManager.registerDefaultNetworkCallback(it)
|
||||||
override fun onAvailable(network: Network) {
|
}
|
||||||
onNetworkChanged?.invoke()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
} else {
|
} else {
|
||||||
receiver?.let {
|
receiver?.let {
|
||||||
context.registerReceiver(it, it.filter)
|
context.registerReceiver(it, it.filter)
|
||||||
@@ -40,8 +47,14 @@ class NetworkChangedListener(private val context: Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun unRegister() {
|
fun unRegister() {
|
||||||
receiver?.let {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||||
context.unregisterReceiver(it)
|
networkCallback?.let {
|
||||||
|
connectivityManager.unregisterNetworkCallback(it)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
receiver?.let {
|
||||||
|
context.unregisterReceiver(it)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user