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ý
IBinderposkytuje 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).