inblog logo
|
code-with-me
    Android Development

    [Android] collectAsStateWithLifecycle과 collectAsState의 차이

    Oct 02, 2024
    [Android] collectAsStateWithLifecycle과 collectAsState의 차이
    Contents
    collectAsStatecollectAsStateWithLifecycle

    collectAsState와 collectAsStateWithLifecycle는 둘 다 Jetpack Compose의 @Composable 함수에서 StateFlow를 수집하는 데 사용되지만, 라이프사이클 인식 측면에서 차이가 있다.

    collectAsState

    - 기본 사용법: StateFlow를 수집하여 State 객체로 변환한다.

    - 라이프사이클 인식: 기본적으로 라이프사이클을 인식하지 않습니다. @Composable이 활성 라이프사이클 상태에 있지 않더라도 계속 수집을 진행하므로 불필요한 리소스 사용이 발생할 수 있습니다.

    collectAsStateWithLifecycle

    - 향상된 사용법: StateFlow를 수집하여 State 객체로 변환하지만, 라이프사이클 인식 기능이 추가되었다.

    - 라이프사이클 인식: 라이프사이클을 인식하여 @Composable이 활성 라이프사이클 상태(예: 시작 또는 재개)일 때만 StateFlow를 수집합니다. 이를 통해 리소스 사용을 최적화하고 메모리 누수를 방지할 수 있다.

    // collectAsState 사용
    
    val introduce by viewModel.introduce.collectAsState()
    
    // collectAsStateWithLifecycle 사용
    
    val introduce by viewModel.introduce.collectAsStateWithLifecycle()

    요약하자면, collectAsStateWithLifecycle는 @Composable의 라이프사이클에 맞춰 StateFlow 수집을 관리하여 더 효율적이고 안전한 리소스 관리를 가능하게 한다.

    Share article

    code-with-me

    RSS·Powered by Inblog