Sobes.tech
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 klasa Thread sa Looper i Handler, 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 ExecutorService i ThreadPoolExecutor: 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")
    }