2017-01-08 1 views
0

사용자가 질문에 답하는 데 5 초가 걸리는 빠른 퀴즈 앱을 만들었지 만, postDelayed()를 설정하여 퀴즈 활동을 의도를 통해 시작하지만 postDelayed()를 가져올 수 없습니다. 정답을 클릭하면 스스로 취소됩니다.어떻게 Runnable.postDelayed() 타이머를 취소하고 버튼 클릭시 재설정 할 수 있습니까?

어떻게하면이 아이디어를 얻을 수 있습니까? (버튼을 클릭 할 때 5 초 타이머가 취소되고 다시 설정 됨)

편집 : 상황이 완료되면 타이머를 재설정하지 않고 중간 실행을 중지 할 수 있다는 점에서 상황이 복제와 다릅니다. 예 : 타이머는 3 초 후에 사용자가 버튼을 클릭 한 후 5 초 동안 실행됩니다. 타이머를 5로 재설정해야하지만 현재 새 타이머가 시작되지만 2 초 후 postDelayed() 액션이 실행됩니다.

+2

보다 나은 검색 결과입니다. 귀하의 답변 또는 적어도 같은 논리는 여기에 있습니다 : http://stackoverflow.com/questions/11221829/restart-countdown-timer-with-new-time-android –

+0

가능한 중복 [새로운 시간 안드로이드로 카운트 다운 타이머 다시 시작] http://stackoverflow.com/questions/11221829/restart-countdown-timer-with-new-time-android) –

답변

0

.removeCallbacks() 메서드를 사용하여 보류중인 게시물을 제거합니다.

대신 RxJava와 .timeout() 연산자를 사용하는 것이 좋습니다.

mObservable 
    .timeout(5, SECONDS) 
    .subscribe() 
관련 문제