Sobes.tech
Junior — Middle

Μπορείτε να αναφέρετε τους διάφορους τύπους Broadcast Receiver που χρησιμοποιούνται στο Android;

sobes.tech AI

Απάντηση από AI

Στο Android, υπάρχουν δύο βασικοί τύποι Broadcast Receiver:

  1. Στατικοί (Static) Broadcast Receivers — δηλώνονται στο αρχείο manifest της εφαρμογής (AndroidManifest.xml). Μπορούν να λαμβάνουν μηνύματα broadcast ακόμα και όταν η εφαρμογή δεν τρέχει. Ωστόσο, από το 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));