2017-12-14 7 views
0

내 Kotlin 프로젝트에이 기능이 있습니다. 내가 사용하고 있습니다 ReactiveNetwork - RxJava Observables와 함께 안드로이드 라이브러리 수신 네트워크 연결 상태 및 인터넷 연결을 사용하고 있습니다. 나는 반응 프로그래밍에 익숙하지 않아서 이제 이것을 여러 곳에서 사용하기 위해이 방법을 리팩토링해야한다. 이 메서드를 리팩토링하여 인터넷 연결 상태 (isConnected) 만 반환하려면 어떻게해야합니까?관찰 가능한 값을 얻는 방법

private fun downloadProductIfConnected(arguments: Bundle){ 
    ReactiveNetwork.checkInternetConnectivity().subscribeOn(Schedulers.io()) 
      .observeOn(AndroidSchedulers.mainThread()) 
      .subscribe{ isConnected -> 
       if (isConnected){ 
        downloadAndOpenProduct(arguments) 
       }else{ 
        displayConnectionErrorDialog(arguments) 
       } 
      } 
} 
+1

내 조언처럼 호출 할 수 있습니다

private fun downloadProductIfConnected(callback:(Boolean)->Any){ ReactiveNetwork.checkInternetConnectivity().subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe{ isConnected -> callback(isConnected) } } 

아래처럼 여기 higher-order 함수의 사용을 만들 수 있습니다 **하지 ** 사용 결과를 즉시 반환하려면 RxJava와이 라이브러리를 사용하십시오. 도서관에서 변경 사실을 통보하는 것 같습니다. 현재 상태를 원합니다. – dipdipdip

답변

0

가 될 것이다 당신이

downloadProductIfConnected { isConnected-> onConnectionResult(isConnected) } 


fun onConnectionResult(isConnected: Boolean){ 
    //do something with isConnected 
} 
관련 문제