Middle
PendingIntent nima?
sobes.tech AI
AIdan javob
PendingIntent — bu token, u yordam beradigan boshqa ilovaga sizning ilovangiz nomidan kodning bir qismini bajarish imkoniyatini beradi.
U quyidagilar uchun ishlatiladi:
- Bildirishnomalar (bildirishnomaga bosilganda faoliyatni boshlash).
- Stol vidjetlari (foydalanuvchi bosishlarini ishlash).
- Rejalashtiruvchi xizmatlar (AlarmManager bilan takrorlanadigan vazifalar).
Oddiy Intent bilan asosiy farqlar:
PendingIntentboshqa ilovaga uzatiladi.PendingIntentasl ilovaning ruxsatlarini saqlaydi.
PendingIntent turlari:
getActivity():Activityni boshlash uchun.// Activityni boshlash uchun PendingIntent yaratish val intent = Intent(context, TargetActivity::class.java) val pendingIntent = PendingIntent.getActivity(context, 0, intent, 0)getService():Serviceni boshlash uchun.// Serviceni boshlash uchun PendingIntent yaratish val intent = Intent(context, MyService::class.java) val pendingIntent = PendingIntent.getService(context, 0, intent, 0)getBroadcast(): Broadcast xabar yuborish uchun.// Broadcast yuborish uchun PendingIntent yaratish val intent = Intent("MY_ACTION") val pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0)
PendingIntent bayroqlari ularning xatti-harakatlariga ta'sir qiladi:
| Bayroq | Tavsifi |
|---|---|
FLAG_ONE_SHOT |
PendingIntent faqat bir marta ishlatilishi mumkin. |
FLAG_NO_CREATE |
Agar PendingIntent mavjud bo'lmasa, uni yaratmaslik, null qaytarish. |
FLAG_CANCEL_CURRENT |
Agar bir xil Intent bilan PendingIntent mavjud bo'lsa, uni bekor qilish va yangi yaratish. |
FLAG_UPDATE_CURRENT |
Agar bir xil Intent bilan PendingIntent mavjud bo'lsa, uning Extraslarini yangilash. |
FLAG_IMMUTABLE |
PendingIntent boshqa ilovalar tomonidan o'zgartirilishi mumkin emas (tavsiya etiladi). |
PendingIntent ishlatilganda, ularni ajratish uchun noyob so'rov kodlarini (ikkinchi argument getActivity, getService, getBroadcast metodlarida) ko'rsatish muhimdir.