autodispose 라이브러리에서 간격 연산자가있는 스트림과 autodispose가있는 경우 범위가 일시 중지 및 중지 상태를 내 보낸 경우에도 스트림이 계속 트리거되도록 설계되어 있습니까?
예
Fragment {
override fun onViewCreated() {
Flowable.just(1).flatMap{ value ->
Flowable.interval(1, TimeUnit.SECONDS).map{value}
.autoDispose(viewLifecycleOwner)
.subscribe{Timber.d("Value: $value")}
}
}
}
다음 활동으로 변경하면 범위 자체가 ON_PAUSE 상태가 된 다음 ON_STOP 상태가 되더라도 간격은 계속 값을 방출합니다.
사용할 때 동작이 변경되지 않습니다.
private val scopeProvider by lazy { AndroidLifecycleScopeProvider.from(viewLifecycleOwner) }
대신 autoDispose (scopeProvider)를 사용하십시오.
귀하의 예에 해당 라이프 사이클 이벤트는 것 onDestroyView()
모두 후에이다, onPause()
하고 onStop()
. 수명주기 흐름은 https://i.imgur.com/0EVReuq.png 다이어그램을 참조 하세요 .
일시 중지 또는 중지 상태에서 중지하려면 다음 중 하나를 수행 할 수 있습니다.
1-이 구독을 onStart()
(중지) 또는 onResume()
(일시 중지)로 이동
2-원하는 종료 이벤트를 수동으로 설정
Fragment {
override fun onViewCreated() {
Flowable.just(1).flatMap{ value ->
Flowable.interval(1, TimeUnit.SECONDS).map{value}
.autoDispose(viewLifecycleOwner, untilEvent = Lifecycle.Event.ON_PAUSE) // or ON_STOP
.subscribe{Timber.d("Value: $value")}
}
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다