20230829 TIL Handler/postDelayed 함수

이성진·2023년 8월 29일
0

TIL

목록 보기
24/95
post-custom-banner

- Handler : 안드로이드에서 쓰레드처럼 동작하도록 도와주는 클래스

-> 시간이 오래 걸리는 작업들은 따로 백그라운드 처리 ex.) 네트워크 통신

-> UI는 계속 사용자의 동작을 받을 수 있도록 유지 + 다른 작업을 별개의 핸들러를 통해 실행

  • 쓰레드 (Thread): 하나의 프로그램 안에서 돌아가는 프로세스 같은 개념이다.

-> 토렌트 : 영상을 100% 다운로드 하고 나서 -> 그다음에 재생 (쓰레드 X)

-> 유튜브 : 영상을 다운로드 하면서 + 동시에 재생도 같이 진행.

  • 프로세스 (Process): 한대의 컴퓨터 안에서 여러가지 작업을 동시에 실행할때 사용되는 각각의 작업 단위.

->CPU는 기본적으로 한번에 하나의 작업만 수행할 수 있다.

->실제로는 여러개이ㅡ 프로그램을 동시에 사용 가능. EX)노래재생 + 인터넷 쇼핑

  • 프로세스의 기본 동작 원리

->여러개의 포르개름을 아주 짧은 간격으로 순환시키면서 실행.

->각각의 딜레이를 사람이 인지하지 못할정도로 빠르게 순환시키면서 실행.

postDelayed 함수 설명

  • Handler의 기능 중 특정 코드를 , 일정 시간이 지나고 나서 실행되도록 지연처리 해주는 함수.

    val 핸들러변수 = Handler(Looper.getMainLooper) // android.os 가 주는 Handler로 자동완성해야 정상 동작
    핸들러변수.postDelayed({
    // 실제로 시간이 지나고 나서 실행할 내용
    }, 지연시킬시간-ms단위로)

  • 활용

  • 앱을 실행하면 보통 앱로고 / 회사로고 등을 일정시간 보여주는 용도.
    => SplashActivity : 앱을 사용하는데 필요한 데이터 (토큰 서버 조회 - 자동로그인 유효 여부) / 세팅 값 등을 확인하고 세팅 (눈에 안보이는 작업)하는데 필요한 시간을 벌기 위한 화면.

  • 로딩화면도 너무 빨리 로딩이 끝나면 이동이 부자연스럽다. => 강제로 로고 화면을 일정시간동안 보여주고 나서, 이동시키는 방식으로 사용.

profile
2023.08 ~ Android Kotlin 공부
post-custom-banner

2개의 댓글

comment-user-thumbnail
2023년 8월 29일

오늘도 고생 많으셨습니당!!

답글 달기
comment-user-thumbnail
2023년 8월 29일

고생많으셨습니다 정리 잘하셨네용!

답글 달기