반응형
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 또한 잘못된 사용으로 인한 메모리 누수에 주의해야 한다.
반응형
반응형
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 또한 잘못된 사용으로 인한 메모리 누수에 주의해야 한다.
반응형