Middle
Koji su načini za kreiranje toka u Androidu?
sobes.tech АИ
Одговор од АИ
U Androidu možete kreirati niti na sledeće načine:
-
Nasleđivanjem od
Thread:// Klasa koja nasleđuje od Thread class MyThread extends Thread { @Override public void run() { // Kod zadatka koji se izvršava u novoj niti System.out.println("Nit kreirana nasleđivanjem od Thread"); } } // Kreiranje i pokretanje niti MyThread myThread = new MyThread(); myThread.start(); -
Implementacijom interfejsa
Runnable:// Klasa koja implementira interfejs Runnable class MyRunnable implements Runnable { @Override public void run() { // Kod zadatka koji se izvršava u novoj niti System.out.println("Nit kreirana implementacijom Runnable"); } } // Kreiranje niti koristeći Runnable Thread thread = new Thread(new MyRunnable()); thread.start(); -
Korišćenjem
AsyncTask(zastarjelo): za izvršavanje operacija u pozadini i osvežavanje UI-ja. -
Korišćenjem
HandlerThread: posebna klasaThreadsaLooperiHandler, koja pojednostavljuje rad sa redom poruka u pozadini.// Kreiranje HandlerThread HandlerThread handlerThread = new HandlerThread("MyHandlerThread"); handlerThread.start(); // Dobijanje Looper-a Looper looper = handlerThread.getLooper(); // Kreiranje Handler-a povezanog sa Looper-om Handler handler = new Handler(looper); // Slanje zadatka u red niti handler.post(new Runnable() { @Override public void run() { // Kod zadatka koji se izvršava u handlerThread System.out.println("Nit kreirana korišćenjem HandlerThread"); } }); -
Korišćenjem
ExecutorServiceiThreadPoolExecutor: za upravljanje bazenom niti.import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; // Kreiranje bazena niti sa fiksnom veličinom ExecutorService executor = Executors.newFixedThreadPool(2); // Slanje zadatka na izvršenje u bazen niti executor.execute(new Runnable() { @Override public void run() { // Kod zadatka koji se izvršava u jednoj od niti bazena System.out.println("Nit kreirana pomoću ExecutorService"); } }); // Zatvaranje bazena (važno za sprečavanje curenja) executor.shutdown(); -
Korišćenjem Kotlin korutina: savremen pristup za asinhrono programiranje u Androidu.
import kotlinx.coroutines.* // Pokretanje korutine u pozadinskoj niti GlobalScope.launch(Dispatchers.IO) { // Kod zadatka koji se izvršava u pozadinskoj (IO) niti println("Nit kreirana korišćenjem korutina") }