Today I Learn

[TIL] - Android Compose에서 Context 사용하기

SeungYong.Lee 2024. 1. 23. 11:37
반응형

Android Compose에서 Context 사용하기

Compose - ComponentActivity에서는 기존 AppCompatActivity와는 다르게 바로 context를 가져올 수 없는 것을 발견했다.

Compose에서는 현재 화면에 대한 Context를 참조하는 'LocalContext'를 활용해야 한다.

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            FeatherAndroidTasksTheme {
                // Provide the current context using CompositionLocalProvider
                CompositionLocalProvider(LocalContext provides this) {
                    // Call your Compose function
                    MyApp()
                }
            }
        }
    }
}

@Composable
fun MyApp() {
    // Access the current context using LocalContext
    val context = LocalContext.current

    // Your Compose UI code here
    Surface(
        modifier = Modifier.fillMaxSize(),
        color = MaterialTheme.colorScheme.background
    ) {
        Column {
            Text("Hello, Context!")
            // Toast.makeText(context, "Test!!", Toast.LENGTH_SHORT).show()
        }
    }
}

 

기존에 사용하던 Context와 동일하게 LocalContext 또한 잘못된 사용으로 인한 메모리 누수에 주의해야 한다.

반응형