Sobes.tech
Junior

Kas tead, kuidas luua HandlerThread Androidis?

sobes.tech AI

Vastus AI-lt

Jah, ma tean. HandlerThread on Androidi klass, mis on mugav kasutada sõlme loomiseks koos sõnumitsükliga (Looper).

Siin on, kuidas seda saab luua ja kasutada:

  1. HandlerThreadi loomine:

    HandlerThread handlerThread = new HandlerThread("MinuTööSõlm");
    handlerThread.start(); // Oluline on käivitada sõlm
    
  2. Handleri loomine, mis on seotud HandlerThreadiga:

    Handler handler = new Handler(handlerThread.getLooper()) {
        @Override
        public void handleMessage(Message msg) {
            // Sõnumi töötlemine handleri sõlmes
            // See kood täidetakse taustal
        }
    };
    
  3. Sõnumite saatmine HandlerThreadile:

    // Runnable saatmine taustal täitmiseks
    handler.post(new Runnable() {
        @Override
        public void run() {
            // Teha mingi ülesanne taustal
        }
    });
    
    // Sõnumi saatmine
    Message message = Message.obtain();
    message.what = 1; // Sõnumi tüüp
    message.obj = "Sõnumi andmed"; // Andmed
    handler.sendMessage(message);
    
  4. HandlerThreadi peatamine vajadusel:

    // Ohutu lõpetamine, oodates, kuni praegused sõnumid töödeldakse
    handlerThread.quitSafely();
    
    // Ohtlik lõpetamine, katkestades töötlemise
    // handlerThread.quit();
    

Peamine eelis HandlerThread-i puhul on see, et see lihtsustab taustatööde loomist ja võimaldab nende tööde juhtimist läbi Handler, vältides käsitsi Looper ja MessageQueue haldamist. See on kasulik pikaajaliste operatsioonide jaoks, mis ei tohiks blokeerida peamist UI-sõlme.