Sobes.tech
Junior — Middle

Πώς υλοποιείτε ένα στοιχείο Broadcast Receiver που λειτουργεί μόνο στο πλαίσιο της τρέχουσας εφαρμογής;

sobes.tech AI

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

Για να λειτουργεί ο Broadcast Receiver μόνο στο πλαίσιο της τρέχουσας εφαρμογής, πρέπει να εγγράφεται δυναμικά μέσω κώδικα, και όχι στο μανιφέστο. Με την δυναμική εγγραφή χρησιμοποιώντας registerReceiver(), ο δέκτης θα λαμβάνει μόνο τα μηνύματα broadcast που αποστέλλονται εντός της εφαρμογής.

Παράδειγμα:

BroadcastReceiver receiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        // επεξεργασία συμβάντος
    }
};

// Εγγραφή σε Activity ή Service
IntentFilter filter = new IntentFilter("com.example.MY_ACTION");
registerReceiver(receiver, filter);

// Μην ξεχάσετε να αποεγγράψετε
unregisterReceiver(receiver);

Με αυτόν τον τρόπο, περιορίζετε το πεδίο δράσης του Broadcast Receiver στην τρέχουσα εφαρμογή, καθώς άλλες συστήματα ή εφαρμογές δεν θα μπορούν να στέλνουν τέτοια τοπικά μηνύματα broadcast.