Sobes.tech
Middle

Kā izveidot plūsmu Android?

sobes.tech AI

Atbilde no AI

Android jūs varat izveidot pavedienus šādiem veidiem:

  • Mantojot Thread:

    // Klase, kas manto no `Thread`
    class MyThread extends Thread {
        @Override
        public void run() {
            // Kods uzdevumam, kas tiek izpildīts jaunajā pavedienā
            System.out.println("Pavediens izveidots, mantojot no `Thread`");
        }
    }
    // Pavediena izveide un palaišana
    MyThread myThread = new MyThread();
    myThread.start();
    
  • Runnable interfeisa īstenošana:

    // Klase, kas īsteno `Runnable` interfeisu
    class MyRunnable implements Runnable {
        @Override
        public void run() {
            // Kods uzdevumam, kas tiek izpildīts jaunajā pavedienā
            System.out.println("Pavediens izveidots, īstenojot `Runnable`");
        }
    }
    // Pavediena izveide ar `Runnable`
    Thread thread = new Thread(new MyRunnable());
    thread.start();
    
  • Izmantojot AsyncTask (novecojis): fonu operāciju izpildei un UI atjaunināšanai.

  • Izmantojot HandlerThread: īpaša Thread klase ar Looper un Handler, kas atvieglo ziņojumu rindas darbu fonā.

    // `HandlerThread` izveide
    HandlerThread handlerThread = new HandlerThread("MyHandlerThread");
    handlerThread.start();
    // Looper iegūšana
    Looper looper = handlerThread.getLooper();
    // `Handler` izveide, kas ir saistīts ar `Looper`
    Handler handler = new Handler(looper);
    // Uzdevuma sūtīšana rindā
    handler.post(new Runnable() {
        @Override
        public void run() {
            // Kods uzdevumam, kas tiek izpildīts `handlerThread`
            System.out.println("Pavediens izveidots ar `HandlerThread`");
        }
    });
    
  • Izmantojot ExecutorService un ThreadPoolExecutor: pavedienu baseina pārvaldībai.

    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    
    // Fiksēta izmēra pavedienu baseina izveide
    ExecutorService executor = Executors.newFixedThreadPool(2);
    // Uzdevuma sūtīšana izpildei
    executor.execute(new Runnable() {
        @Override
        public void run() {
            // Kods uzdevumam, kas tiek izpildīts vienā no baseina pavedieniem
            System.out.println("Pavediens izveidots ar `ExecutorService`");
        }
    });
    // Baseina slēgšana (būtiski, lai novērstu noplūdes)
    executor.shutdown();
    
  • Izmantojot Kotlin korutinas: mūsdienīgs pieejas veids asinhronai programmēšanai Android.

    import kotlinx.coroutines.*
    
    // Korutinas palaišana fonā
    GlobalScope.launch(Dispatchers.IO) {
        // Kods uzdevumam, kas tiek izpildīts fonā (IO) pavedienā
        println("Pavediens izveidots ar korutīnām")
    }