Junior
Android-də BroadcastReceiver nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Bu, sistem və ya istifadəçi tərəfindən yayılmış broadcast mesajlarına cavab verən komponentdir. İstifadəçi interfeysi yoxdur və müəyyən hadisələrə cavab olaraq fon əməliyyatlarını yerinə yetirmək üçün nəzərdə tutulmuşdur.
Əsas xüsusiyyətlər:
- Müəyyən bir hərəkət (action) ilə Intentlərə (Intents) cavab verir.
- Qısa müddətli komponentdir,
onReceive()metodu qısa müddətdə icra olunur. - Uzunmüddətli əməliyyatlar üçün nəzərdə tutulmayıb. Əgər uzunmüddətli iş tələb olunursa,
onReceive()-dən Service başlatmaq lazımdır. - Statik olaraq manifestdə və ya kodda dinamik qeydiyyatdan keçə bilər.
İstifadə nümunələri:
- Şəbəkə vəziyyətində dəyişikliklərə cavab vermək (
android.net.conn.CONNECTIVITY_CHANGE). - Sistem yüklənməsinə cavab vermək (
android.intent.action.BOOT_COMPLETED). - Gələn SMS-ləri işləmək.
- Digər komponentlər və ya digər tətbiqlər tərəfindən göndərilən xüsusi mesajları qəbul etmək.
Manifestdə qeydiyyat:
<receiver android:name=".MyBroadcastReceiver"
android:exported="true"> // exported="true" digər tətbiqlərin intent göndərməsinə imkan verir
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
Kodda qeydiyyat:
// Activity və ya Service-də
IntentFilter filter = new IntentFilter("com.example.MY_CUSTOM_ACTION");
MyBroadcastReceiver receiver = new MyBroadcastReceiver();
registerReceiver(receiver, filter);
// onDestroy() və ya onStop() - qeydiyyatı ləğv etmək vacibdir!
unregisterReceiver(receiver);
BroadcastReceiver sinfi:
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// Burada Intent qəbul ediləndə kod icra olunur
// Məsələn:
if ("com.example.MY_CUSTOM_ACTION".equals(intent.getAction())) {
Toast.makeText(context, "Xüsusi hərəkət alındı!", Toast.LENGTH_SHORT).show();
}
}
}