LaunchedEffect для корутин
Запускайте приостанавливаемую работу, связанную с композицией.
«LaunchedEffect для корутин» — бесплатный урок Jetpack Compose Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Jetpack Compose Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Jetpack Compose Academy содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Effects Live Outside Composition
Composables should be pure and run many times. When you need to do real work like a network call, you reach for a side effect handler instead.
Meet LaunchedEffect
A LaunchedEffect runs suspend code in a coroutine that is tied to where it sits in your composition. Perfect for one-shot startup work. 🚀
It Starts When It Enters
When a LaunchedEffect first enters the composition, it launches its block. When it leaves the composition, the coroutine is cancelled for you.
LaunchedEffect(Unit) {
loadProfile()
}The Key Controls Restarts
The first argument is a key. If the key changes between recompositions, the old coroutine is cancelled and a fresh one starts.
LaunchedEffect(userId) {
user = fetchUser(userId)
}Use Unit to Run Once
Passing Unit (or true) as the key means the effect never restarts. It runs a single time when the Composable appears.
LaunchedEffect(Unit) {
analytics.logScreenView()
}Suspend Calls Are Welcome
Inside the block you can freely call suspend functions like delay or a Retrofit request. The coroutine scope is provided for you.
LaunchedEffect(Unit) {
delay(2000)
showSplash = false
}Never Launch in the Body
Calling a coroutine directly in the Composable body is a bug. The body re-runs on every recomposition, so you would fire the work again and again.
Cancellation Is Automatic
When the user navigates away and the Composable leaves the screen, Compose cancels the coroutine. No manual cleanup, no leaks.
Pair It with State
Effects usually write their result into state so the UI redraws. Store the loaded data, and recomposition shows it.
var data by remember { mutableStateOf<List<Item>>(emptyList()) }
LaunchedEffect(Unit) { data = repo.load() }Multiple Keys for Combined Triggers
You can pass several keys. The effect restarts whenever any of them changes, which is handy for re-fetching on filter changes.
LaunchedEffect(query, sort) {
results = search(query, sort)
}A Typical Loading Pattern
Together it reads like a recipe: set loading true, await the result, then store it. Compose handles the lifecycle around your coroutine.
LaunchedEffect(id) {
loading = true
item = repo.get(id)
loading = false
}Quick Check
Think about how restarts are controlled.
Recap: LaunchedEffect
Nice work! LaunchedEffect runs suspend code tied to composition, restarts when its key changes, and cancels itself automatically when the Composable leaves. 🎯
Часто задаваемые вопросы
Урок «LaunchedEffect для корутин» бесплатный?
Да — полный текст урока «LaunchedEffect для корутин» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Jetpack Compose Academy, подпишись на CoddyKit PRO. Курс Jetpack Compose Academy содержит 4 уроков всего.
Чему я научусь в уроке «LaunchedEffect для корутин»?
Запускайте приостанавливаемую работу, связанную с композицией. Ты практикуешь Jetpack Compose Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Jetpack Compose Academy?
Предыдущий опыт не требуется. Jetpack Compose Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «LaunchedEffect для корутин»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Jetpack Compose Academy?
Да. Каждый урок Jetpack Compose Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- LaunchedEffect для корутин
- rememberCoroutineScope для событий
- DisposableEffect и очистка
- derivedStateOf и snapshotFlow