Sobes.tech
Junior — Middle

Czy możesz wymienić różne typy Broadcast Receiver używane w Androidzie?

sobes.tech AI

Odpowiedź od AI

W Androidzie istnieją dwa główne typy Broadcast Receiver:

  1. Statyczne (Static) Broadcast Receivers — deklarowane w manifeście aplikacji (AndroidManifest.xml). Mogą odbierać wiadomości broadcast nawet gdy aplikacja nie jest uruchomiona. Jednak od Androida 8.0 (API 26) ich użycie jest ograniczone dla niektórych zdarzeń systemowych, aby oszczędzać zasoby.

  2. Dynamically (Dynamic) Broadcast Receivers — rejestrowane programowo w kodzie (zwykle w onCreate lub onResume aktywności) za pomocą registerReceiver(). Są aktywne tylko podczas gdy aplikacja lub komponent jest uruchomiony i zarejestrowany.

Można również wyróżnić:

  • Ordered Broadcast Receivers — odbierają wiadomości kolejno, z możliwością przerwania dalszej transmisji.
  • Local Broadcast Receivers — działają wewnątrz jednej aplikacji, nie wychodząc poza jej granice, co zwiększa bezpieczeństwo i wydajność (LocalBroadcastManager).

Przykład dynamicznej rejestracji:

BroadcastReceiver receiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        // obsługa zdarzenia
    }
};
registerReceiver(receiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));