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.