투케이2K

114. (AndroidStudio/android/kotlin) 코틀린 핸들러 (Handler) 사용해 실시간 주기적 작업 및 postDelayed 일정 시간 후 예약 작업 실행 본문

Android

114. (AndroidStudio/android/kotlin) 코틀린 핸들러 (Handler) 사용해 실시간 주기적 작업 및 postDelayed 일정 시간 후 예약 작업 실행

투케이2K 2021. 4. 26. 16:39

/* =========================== */

[ 개발 환경 설정 ]

개발 툴 : AndroidStudio

개발 언어 : kotlin

/* =========================== */

/* =========================== */

[소스 코드]

 

//========== [실시간 핸들러 작업 시작 명령] ==========
fun getHandlerStart() {
	Log.d("---","---")
	Log.w("//===========//","================================================")
	Log.d("","\n"+"[A_AA_Test_Kotlin > getHandlerStart() 메소드 : 핸들러 시작 실시]")
	Log.w("//===========//","================================================")
	Log.d("---","---")
	try {
		mHandler.sendEmptyMessage(0) //아래에 있는 handleMessage를 부른다
	}
	catch (e : Exception){
		e.printStackTrace()
	}
}





//========== [실시간 핸들러 작업 종료 명령] ==========
fun getHandlerStop() {
	Log.d("---","---")
	Log.w("//===========//","================================================")
	Log.d("","\n"+"[A_AA_Test_Kotlin > getHandlerStop() 메소드 : 핸들러 종료 실시]")
	Log.w("//===========//","================================================")
	Log.d("---","---")
	try {
		mHandler.removeMessages(0) //핸들러 사용 종료
		countHandler.removeMessages(0) //핸들러 사용 종료
	}
	catch (e : Exception){
		e.printStackTrace()
	}
}





//========== [실시간 핸들러 작업 처리 부분] ==========
val countHandler = Handler()
val mHandler = object : Handler(){
	override fun handleMessage(msg: Message) {
		Log.d("---","---")
		Log.d("//===========//","================================================")
		Log.d("","\n"+"[A_AA_Test_Kotlin > mHandler() 메소드 : 실시간 작업 수행]")
		Log.d("//===========//","================================================")
		Log.d("---","---")

		//TODO ========= [동적 UI 작업 수행 실시] =========


		//TODO ========= [자기 자신을 1초마다 무한 루프 호출] =========
		//Handler().postDelayed() //TODO 일회용 방식
		countHandler.postDelayed({ //TODO 재사용 방식
			getHandlerStart()
		},1000)
}

/* =========================== */

/* =========================== */

[결과 출력]

/* =========================== */

 

반응형
Comments