Sobes.tech
Junior — Middle

Мо метавонед намудҳои гуногуни Broadcast Receiver-ро, ки дар Android истифода мешаванд, номбар кунед?

sobes.tech AI

Ҷавоб аз AI

Android-да екі негізгі Broadcast Receiver түрі бар:

  1. Статикалық (Static) Broadcast Receiver-лер — олар қолданбаның манифестінде (AndroidManifest.xml) жарияланады. Олар қолданба іске қосылмаса да кең таралған хабарламаларды қабылдай алады. Алайда, Android 8.0 (API 26) бастап, олардың кейбір жүйелік оқиғалар үшін қолданылуы шектелген, ресурстарды үнемдеу үшін.

  2. Динамикалық (Dynamic) Broadcast Receiver-лер — олар бағдарламалық түрде кодта тіркеледі (әдетте 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));