`launchWhenStarted` is deprecated for Flow collection. It suspends the collecting coroutine when the Fragment is stopped, but it does not provide the same structured start/stop behavior for the upstream Flow and can keep resources or producers active unnecessarily. In a Fragment, collect against the **view lifecycle** with `repeatOnLifecycle`: ```kotlin override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) viewLifecycleOwner.lifecy...
Scanned 9/5/2026
Install to Claude Code
npx -y skills add HoangNguyen0403/agent-skills-standard --skill android-legacy-state --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Android Legacy State?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/hoangnguyen0403-android-legacy-state-agent-skills-standard)More formats (shields.io, HTML) on the badges page.
`launchWhenStarted` is deprecated for Flow collection. It suspends the collecting coroutine when the Fragment is stopped, but it does not provide the same structured start/stop behavior for the upstream Flow and can keep resources or producers active unnecessarily. In a Fragment, collect against the **view lifecycle** with `repeatOnLifecycle`:
```kotlin
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
viewLifecycleOwner.lifecycleScope.launch {
viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.STARTED) {
viewModel.uiState.collect { state ->
binding.progressBar.isVisible = state.isLoading
binding.errorMessage.text = state.error.orEmpty()
}
}
}
}
```
`repeatOnLifecycle` cancels the collection when the view leaves `STARTED` and starts it again when the view returns. Using `viewLifecycleOwner` also prevents a collector from trying to update a destroyed Fragment view after navigation.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!