Sobes.tech
Junior

Androidda BroadcastReceiver nima?

sobes.tech AI

AIdan javob

Bu, tizim yoki foydalanuvchi tomonidan yuborilgan broadcast xabarlariga javob beradigan komponentdir. U foydalanuvchi interfeysiga ega emas va ma'lum voqealarga javob berish uchun fon operatsiyalarini bajarishga mo'ljallangan.

Asosiy xususiyatlar:

  • Aniq bir harakat (action) bilan Intentlarga javob beradi.
  • Qisqa muddatli komponent, uning onReceive() metodi qisqa vaqt ichida bajariladi.
  • Uzoq davom etadigan operatsiyalar uchun mo'ljallanmagan. Agar uzoq davom etadigan ish talab qilinsa, onReceive() dan Service ishga tushirilishi kerak.
  • Statik ravishda manifestda yoki kodda dinamik tarzda ro'yxatdan o'tkazilishi mumkin.

Foydalanish misollari:

  • Tarmoq holatining o'zgarishlariga javob berish (android.net.conn.CONNECTIVITY_CHANGE).
  • Tizim yuklanishiga javob berish (android.intent.action.BOOT_COMPLETED).
  • Kiruvchi SMSlarni qayta ishlash.
  • Boshqa komponentlar yoki boshqa ilovalar tomonidan yuborilgan shaxsiy xabarlarni qabul qilish.

Manifestda ro'yxatdan o'tkazish:

<receiver android:name=".MyBroadcastReceiver"
          android:exported="true"> // exported="true" boshqa ilovalar intentlarni yuborishi uchun
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED"/>
    </intent-filter>
</receiver>

Kodni ro'yxatdan o'tkazish:

// Activity yoki Service ichida
IntentFilter filter = new IntentFilter("com.example.MY_CUSTOM_ACTION");
MyBroadcastReceiver receiver = new MyBroadcastReceiver();
registerReceiver(receiver, filter);

// onDestroy() yoki onStop() da - ro'yxatdan chiqarish muhim!
unregisterReceiver(receiver);

BroadcastReceiver klassi:

public class MyBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        // Bu yerda Intentni qabul qilgach, kod bajariladi
        // Masalan:
        if ("com.example.MY_CUSTOM_ACTION".equals(intent.getAction())) {
            Toast.makeText(context, "Maxsus harakat qabul qilindi!", Toast.LENGTH_SHORT).show();
        }
    }
}