Middle
Prečo sa v službách používa metóda onBind?
sobes.tech AI
Odpoveď od AI
Metóda onBind sa používá na spojenie komponenty (napríklad Activity) so službou. Vráti implementáciu rozhrania IBinder, cez ktorú môžu interagujúce komponenty volať metódy služby.
// Príklad implementácie onBind v službe
public class MyBoundService extends Service {
private final IBinder binder = new LocalBinder();
public class LocalBinder extends Binder {
MyBoundService getService() {
// Vráti inštanciu služby
return MyBoundService.this;
}
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
// Vráti inštanciu Binder
return binder;
}
// Metódy dostupné cez Binder
public int doSomething() {
// ... vykonať operáciu ...
return 42;
}
}
Pri použití onBind:
- Služba nie je zničená systémom, pokiaľ sú k nej pripojení klienti.
- Viacero klientov sa môže súčasne pripojiť ku službe.
- Vrátený
IBinderposkytuje spôsob, ako môžu klienti volať priamo metódy služby.
Pripojené služby sa používajú na implementáciu dlhodobých úloh na pozadí, s ktorými je potrebné interagovať z UI komponentov (napríklad prehrávanie hudby, nahrávanie súborov s pokrokom).