我在Kotlin项目中有这个功能。我正在使用ReactiveNetwork
-
Android库侦听网络连接状态和与RxJava Observables的Internet连接。我是反应式编程的新手,现在我需要重构这个方法以在很多地方使用它。如何重构此方法以返回互联网连接状态(isConnected)?
private fun downloadProductIfConnected(arguments: Bundle){
ReactiveNetwork.checkInternetConnectivity().subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe{ isConnected ->
if (isConnected){
downloadAndOpenProduct(arguments)
}else{
displayConnectionErrorDialog(arguments)
}
}
}
答案 0 :(得分:0)
可以在此处使用高阶函数,如下所示
private fun downloadProductIfConnected(callback:(Boolean)->Any){
ReactiveNetwork.checkInternetConnectivity().subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe{ isConnected -> callback(isConnected) }
}
你可以像这样打电话
downloadProductIfConnected { isConnected-> onConnectionResult(isConnected) }
fun onConnectionResult(isConnected: Boolean){
//do something with isConnected
}