Middle
Quais são as formas de criar um fluxo no Android?
sobes.tech IA
Resposta da IA
No Android, pode criar threads das seguintes maneiras:
-
Herança de
Thread:// Classe que herda de Thread class MyThread extends Thread { @Override public void run() { // Código da tarefa executada no novo thread System.out.println("Thread criado por herança de Thread"); } } // Criação e início do thread MyThread myThread = new MyThread(); myThread.start(); -
Implementação da interface
Runnable:// Classe que implementa Runnable class MyRunnable implements Runnable { @Override public void run() { // Código da tarefa executada no novo thread System.out.println("Thread criado por implementação de Runnable"); } } // Criação do thread usando Runnable Thread thread = new Thread(new MyRunnable()); thread.start(); -
Uso de
AsyncTask(obsoleto): para executar operações em background e atualizar a UI. -
Uso de
HandlerThread: uma classe especial deThreadcomLoopereHandler, facilitando o trabalho com a fila de mensagens em um thread em background.// Criação de HandlerThread HandlerThread handlerThread = new HandlerThread("MyHandlerThread"); handlerThread.start(); // Obtenção do Looper Looper looper = handlerThread.getLooper(); // Criação de Handler ligado ao Looper Handler handler = new Handler(looper); // Envio de tarefa para a fila do thread handler.post(new Runnable() { @Override public void run() { // Código da tarefa executada em handlerThread System.out.println("Thread criado usando HandlerThread"); } }); -
Uso de
ExecutorServiceeThreadPoolExecutor: para gerenciar um pool de threads.import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; // Criação de um pool de threads com tamanho fixo ExecutorService executor = Executors.newFixedThreadPool(2); // Envio de tarefa para execução no pool executor.execute(new Runnable() { @Override public void run() { // Código da tarefa executada em um dos threads do pool System.out.println("Thread criado usando ExecutorService"); } }); // Encerramento do pool (importante para evitar vazamentos) executor.shutdown(); -
Uso de corutinas Kotlin: abordagem moderna para programação assíncrona no Android.
import kotlinx.coroutines.* // Iniciar uma coroutine em um thread em background GlobalScope.launch(Dispatchers.IO) { // Código da tarefa executada em um thread em background (IO) println("Thread criado usando corutinas") }