Sobes.tech
Junior — Middle

Можете ли да назовете различните типове Broadcast Receiver, използвани в Android?

sobes.tech AI

Отговор от AI

В Android съществуват два основни типа Broadcast Receiver:

  1. Статични (Static) Broadcast Receivers — обявяват се в манифеста на приложението (AndroidManifest.xml). Те могат да получават широковещателни съобщения дори когато приложението не е стартирано. Въпреки това, от Android 8.0 (API 26) тяхната употреба е ограничена за някои системни събития, за да се пести ресурси.

  2. Динамични (Dynamic) Broadcast Receivers — регистрират се програмно в кода (обикновено в onCreate или onResume на активността) чрез registerReceiver(). Те са активни само докато приложението или компонентът е стартиран и регистриран.

Може също да се разграничат:

  • Ordered Broadcast Receivers — получават съобщенията последователно, с възможност да прекъснат по-нататъшната предавка.
  • Local Broadcast Receivers — работят вътре в едно приложение, без да излизат извън него, което повишава сигурността и производителността (LocalBroadcastManager).

Пример за динамична регистрация:

BroadcastReceiver receiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        // обработка на събитието
    }
};
registerReceiver(receiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));