Junior
Τι είναι το BroadcastReceiver στο Android;
sobes.tech AI
Απάντηση από AI
Αυτό είναι ένα συστατικό που ανταποκρίνεται σε μηνύματα broadcast συστήματος ή χρήστη. Δεν διαθέτει διεπαφή χρήστη και προορίζεται για την εκτέλεση εργασιών στο παρασκήνιο σε απάντηση σε συγκεκριμένα γεγονότα.
Βασικά χαρακτηριστικά:
- Ανταποκρίνεται σε Intent με συγκεκριμένη ενέργεια (action).
- Σύντομο συστατικό, η μέθοδος
onReceive()εκτελείται σε σύντομο χρονικό διάστημα. - Δεν προορίζεται για μακροχρόνιες λειτουργίες. Αν απαιτείται μακρά εργασία, πρέπει να ξεκινάει μια Service από το
onReceive(). - Μπορεί να καταχωρηθεί στατικά στο manifest ή δυναμικά στον κώδικα.
Παραδείγματα χρήσης:
- Ανταπόκριση σε αλλαγές κατάστασης δικτύου (
android.net.conn.CONNECTIVITY_CHANGE). - Ανταπόκριση σε εκκίνηση συστήματος (
android.intent.action.BOOT_COMPLETED). - Επεξεργασία εισερχόμενων SMS.
- Λήψη προσαρμοσμένων μηνυμάτων που αποστέλλονται από άλλα συστατικά ή άλλες εφαρμογές.
Εγγραφή στο manifest:
<receiver android:name=".MyBroadcastReceiver"
android:exported="true"> // exported="true" ώστε άλλες εφαρμογές να μπορούν να στέλνουν intents
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
Εγγραφή στον κώδικα:
// Σε μια δραστηριότητα ή υπηρεσία
IntentFilter filter = new IntentFilter("com.example.MY_CUSTOM_ACTION");
MyBroadcastReceiver receiver = new MyBroadcastReceiver();
registerReceiver(receiver, filter);
// Στο onDestroy() ή onStop() - είναι σημαντικό να ακυρώσετε την εγγραφή!
unregisterReceiver(receiver);
Κλάση BroadcastReceiver:
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// Εδώ εκτελείται ο κώδικας κατά τη λήψη του Intent
// Για παράδειγμα:
if ("com.example.MY_CUSTOM_ACTION".equals(intent.getAction())) {
Toast.makeText(context, "Προσαρμοσμένη ενέργεια λήφθηκε!", Toast.LENGTH_SHORT).show();
}
}
}