Ответ
Да, работал. В Android есть несколько способов работы с потоками:
- Thread - базовый класс Java для создания потоков:
new Thread(() -> {
// Фоновый код
runOnUiThread(() -> {
// Обновление UI
});
}).start();
- Handler/Looper - для работы с очередью сообщений:
Handler handler = new Handler(Looper.getMainLooper());
handler.post(() -> {
// Код выполнится в основном потоке
});
-
AsyncTask (устарел) - для простых фоновых задач с обновлением UI.
-
Coroutines - современный подход:
lifecycleScope.launch {
val result = withContext(Dispatchers.IO) {
// Фоновый код
}
// Обновление UI (автоматически в основном потоке)
}
- RxJava - реактивное программирование.
Важно помнить:
- UI можно обновлять только в основном потоке
- Долгие операции нельзя выполнять в основном потоке
- Для работы с сетью/БД/файлами нужно использовать фоновые потоки