Существует несколько способов:
Потоки (Threads): Создание и управление собственными потоками.
java
Handler и Looper: Используются для обмена сообщениями между потоками, часто для обновления UI из фонового потока.
java
AsyncTask (устарел, но полезно знать): Простой способ выполнять асинхронные задачи с обновлением UI. Не рекомендуется для нового кода.
java
ExecutorService и Future: Более гибкий механизм управления пулами потоков.
java
Kotlin Coroutines: Современный подход для асинхронного программирования в Kotlin, основанный на сопрограммах. Требует добавления зависимостей.
kotlin
Выбор метода зависит от сложности задачи, требуемого уровня контроля над потоками и предпочтений языка (Java/Kotlin). В современном Android-разработке рекомендуется использовать Kotlin Coroutines или библиотеки для асинхронной работы, такие как RxJava или Flow.