Sobes.tech
Middle

Proč se v službách používá metoda onBind?

sobes.tech AI

Odpověď od AI

Metoda onBind se používá k propojení komponenty (například Activity) se službou. Vrací implementaci rozhraní IBinder, přes kterou mohou interagující komponenty volat metody služby.

// Příklad implementace onBind ve službě
public class MyBoundService extends Service {

    private final IBinder binder = new LocalBinder();

    public class LocalBinder extends Binder {
        MyBoundService getService() {
            // Vrací instanci služby
            return MyBoundService.this;
        }
    }

    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        // Vrací instanci Binder
        return binder;
    }

    // Metody dostupné přes Binder
    public int doSomething() {
        // ... provést nějakou operaci ...
        return 42;
    }
}

Při použití onBind:

  • Služba není systémem zničena, dokud jsou k ní připojeni klienti.
  • Více klientů se může současně připojit ke službě.
  • Vrácený IBinder poskytuje způsob, jak mohou klienti přímo volat metody služby.

Propojené služby se používají k implementaci dlouhotrvajících úloh na pozadí, s nimiž je třeba komunikovat z komponent UI (například přehrávání hudby, nahrávání souborů s průběhem).