본문 바로가기

Application/Android Kotlin

[Android] Coroutine 예시

Coroutine 은 비동기 프로그래밍을 위한 프로그램 구성요소이다. 루틴 또는 스레드와 유사한 개념으로, 코드의 실행을 일시 중단하고 나중에 다시 시작할 수 있는 블록이다. 이러한 일시 중단과 재개는 애플리케이션의 효율성, 성능, 및 가독성을 향상시킬 수 있다.

 

AppModalDrawer(drawerState, currentRoute, navActions) {
    TasksScreen(
        userMessage = entry.arguments?.getInt(USER_MESSAGE_ARG)!!,
        onUserMessageDisplayed = { entry.arguments?.putInt(USER_MESSAGE_ARG, 0) },
        onAddTask = { navActions.navigateToAddEditTask(R.string.add_task, null) },
        onTaskClick = { task -> navActions.navigateToTaskDetail(task.id) },
        openDrawer = { coroutineScope.launch { drawerState.open() } }
    )
}

위의  코드에서 Coroutine 이 쓰인다. coroutineScope.launch를 호출하면 새로운 코루틴이 시작되고, 그 안에서 비동기 작업이 수행된다. 이렇게 하면 UI 스레드를 차단하지 않고도 비동기 작업을 처리할 수 있다.

 

따라서 drawerState.open()는 드로어를 열 때 사용되며 UI 스레드를 차단하지 않는다.