Middle
Dlaczego w usługach używana jest metoda onBind?
sobes.tech AI
Odpowiedź od AI
Metoda onBind służy do powiązania komponentu (np. Activity) z usługą. Zwraca ona implementację interfejsu IBinder, za pomocą której współdziałające komponenty mogą wywoływać metody usługi.
// Przykład implementacji onBind w usłudze
public class MyBoundService extends Service {
private final IBinder binder = new LocalBinder();
public class LocalBinder extends Binder {
MyBoundService getService() {
// Zwraca instancję usługi
return MyBoundService.this;
}
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
// Zwraca instancję Binder
return binder;
}
// Metody dostępne przez Binder
public int doSomething() {
// ... wykonanie operacji ...
return 42;
}
}
Przy użyciu onBind:
- Usługa nie jest niszczona przez system, dopóki ma podłączonych klientów.
- Wielu klientów może jednocześnie się podłączyć do usługi.
- Zwracany
IBinderumożliwia klientom bezpośrednie wywoływanie metod usługi.
Powiązane usługi służą do realizacji długotrwałych zadań w tle, z którymi konieczna jest interakcja z komponentami UI (np. odtwarzanie muzyki, ładowanie plików z postępem).