Ответ
Для выполнения кода не на Main потоке в Java можно использовать:
- Thread - базовый способ:
new Thread(() -> {
// Ваш код здесь
}).start();
- ExecutorService - более гибкий вариант:
ExecutorService executor = Executors.newSingleThreadExecutor();
executor.execute(() -> {
// Ваш код здесь
});
- HandlerThread (в Android):
HandlerThread handlerThread = new HandlerThread("BackgroundThread");
handlerThread.start();
Handler handler = new Handler(handlerThread.getLooper());
handler.post(() -> {
// Ваш код здесь
});
- Kotlin Coroutines (рекомендуется для современных проектов):
CoroutineScope(Dispatchers.IO).launch {
// Ваш код здесь
}
Важно помнить:
- Не обновляйте UI из фоновых потоков
- Используйте синхронизацию при работе с общими ресурсами
- Управляйте жизненным циклом потоков (особенно в Android)