Junior — Middle
How to ensure that operations do not block the user interface?
sobes.tech AI
Answer from AI
To prevent operations from blocking the user interface in Android, they should be performed in a background thread rather than the main (UI) thread. You can use:
- AsyncTask (deprecated but still common in legacy code)
- HandlerThread or Handler
- ExecutorService
- Kotlin Coroutines (modern and recommended approach)
- RxJava
For example, with coroutines, you can do the following:
GlobalScope.launch(Dispatchers.Main) {
val result = withContext(Dispatchers.IO) {
// Long operation, e.g., network request
fetchData()
}
// Update UI with the result
textView.text = result
}
Thus, heavy work is performed in a background thread (IO), and the interface is updated in the main thread.