<RxJava>Interval

진섭·2023년 5월 27일
0

RxJava

목록 보기
6/20
post-thumbnail

📌 Interval 연산자란?

특정 시간별로 연속된 정수형을 배출하는 Observable을 생성하는 연산자이다. 이 연산자는 주기적인 작업이나 타이머 기능을 구현하는 데 유용합니다. 즉 주기적으로 데이터를 가져오거나 타이머 이벤트를 처리하거나, 일정한 간격으로 작업을 수행하는 등을 구현할 수 있어요. 이 연산자는 앱이 종료하거나 중지할 때 까지, 돌아가요. 그래서 저는 Log를 찍어서 결과를 확인했네요. println으로 찍으면 결과가 안 나와요

📌 Interval 사용법

interval 파라미터 안에 initialDelay 첫 번째 값을 발행하기 전까지 대기하는 시간 즉 0으로 하면 바로 값이 나오고 2로 하면 2초뒤에 값이 발행된다. , period initialDelay로 인해 값이 나온 후에 값을 발행하는 시간 간격,timeUnit initialDelay, period 시간의 단위 즉 TimeUnit.SECONDS 이렇게 하면 초를 의미한다

Observable.interval(initialDelay, period, timeUnit)

📌 5초의 초기 지연이 지난 후 2초 간격으로 값을 발행 한 후 takeWhile 연산자를 사용해 조건이 만족할 때까지 값을 허용해 5 이하인 값만 발행

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        intervalOperator().subscribe(
            {
                Log.d("intervalOperator","onNext : $it")
            },
            {
                Log.d("intervalOperator","onError ${it}")
            },
            {
                Log.d("intervalOperator","onComplete")
            }
        ).let { _ -> }


    }

fun intervalOperator(): Observable<Long> {
    return Observable.interval(5, 2, TimeUnit.SECONDS).takeWhile { value ->
        value <= 5
    }
}

출력결과

profile
Android 개발자

0개의 댓글