-> 시간이 오래 걸리는 작업들은 따로 백그라운드 처리 ex.) 네트워크 통신
-> UI는 계속 사용자의 동작을 받을 수 있도록 유지 + 다른 작업을 별개의 핸들러를 통해 실행
-> 토렌트 : 영상을 100% 다운로드 하고 나서 -> 그다음에 재생 (쓰레드 X)
-> 유튜브 : 영상을 다운로드 하면서 + 동시에 재생도 같이 진행.
->CPU는 기본적으로 한번에 하나의 작업만 수행할 수 있다.
->실제로는 여러개이ㅡ 프로그램을 동시에 사용 가능. EX)노래재생 + 인터넷 쇼핑
->여러개의 포르개름을 아주 짧은 간격으로 순환시키면서 실행.
->각각의 딜레이를 사람이 인지하지 못할정도로 빠르게 순환시키면서 실행.
Handler의 기능 중 특정 코드를 , 일정 시간이 지나고 나서 실행되도록 지연처리 해주는 함수.
val 핸들러변수 = Handler(Looper.getMainLooper) // android.os 가 주는 Handler로 자동완성해야 정상 동작
핸들러변수.postDelayed({
// 실제로 시간이 지나고 나서 실행할 내용
}, 지연시킬시간-ms단위로)
활용
앱을 실행하면 보통 앱로고 / 회사로고 등을 일정시간 보여주는 용도.
=> SplashActivity : 앱을 사용하는데 필요한 데이터 (토큰 서버 조회 - 자동로그인 유효 여부) / 세팅 값 등을 확인하고 세팅 (눈에 안보이는 작업)하는데 필요한 시간을 벌기 위한 화면.
로딩화면도 너무 빨리 로딩이 끝나면 이동이 부자연스럽다. => 강제로 로고 화면을 일정시간동안 보여주고 나서, 이동시키는 방식으로 사용.
오늘도 고생 많으셨습니당!!