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();
}
}
}