Middle
PendingIntent nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Bu, Intent ətrafında bir çərçivədir və bu, səlahiyyəti başqa bir tətbiqə verir ki, bu Intent-i gələcəkdə bizim adımızdan icra etsin.
Əsas xüsusiyyətlər:
- Gecikmiş icra:
Intentdərhal icra edilmir, əvəzinə daha sonra başqa bir komponent tərəfindən icra olunur. - İcazələr:
PendingIntent-ə ötürülən komponent, buIntent-i icra etmək üçün bizim tətbiqimizlə eyni icazələri alır. - Unikalıq: Fərqli
PendingIntent-lər, komponent növü, hərəkət (action), məlumatlar (data), kateqoriyalar (categories) və bayraqlar (flags) eyni olduqda, eyni hesab edilir. - İstifadə: Çox vaxt bildirişlər, fon tapşırıqları, widgetlər və AlarmManager üçün istifadə olunur.
PendingIntent növləri, hədəf komponent növlərinə uyğun gəlir:
getActivity(Context context, int requestCode, Intent intent, int flags):Activity-ni işə salır.getBroadcast(Context context, int requestCode, Intent intent, int flags): yayım siqnalı göndərir.getService(Context context, int requestCode, Intent intent, int flags):Service-i işə salır və ya ona qoşulur.getForegroundService(Context context, int requestCode, Intent intent, int flags):Foreground Service-ni işə salır.
// Bildirişlər üçün PendingIntent nümunəsi
Intent notificationIntent = new Intent(context, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(
context,
0, // requestCode, PendingIntent-i ayırmaq üçün istifadə olunur
notificationIntent,
PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE // Davranışı idarə etmək üçün bayraqlar
);
// İndi bu pendingIntent, məsələn, Notification-ə ötürülə bilər
flags (bayraqlar), mövcud PendingIntent-in yaradılması və ya yenilənməsi zamanı davranışa təsir edir:
FLAG_ONE_SHOT:PendingIntentyalnız bir dəfə istifadə edilə bilər.FLAG_NO_CREATE: ƏgərPendingIntentmövcud deyilsə, yaradılmır,nullqaytarılır.FLAG_CANCEL_CURRENT: Əgər eyni parametrlərlə artıqPendingIntentmövcuddursa, o ləğv edilir və yenisi yaradılır.FLAG_UPDATE_CURRENT: Əgər eyni parametrlərlə artıqPendingIntentmövcuddursa, onun əlavə məlumatları (Extra data) yenilənir.FLAG_IMMUTABLE(S/API 31-dən etibarən əksər hallarda vacibdir): DəyişməzPendingIntentyaradır.FLAG_MUTABLE: DəyişkənPendingIntentyaradır (diqqətli olun, zəif ola bilər).
Düzgün bayrağı seçmək düzgün işləmə və təhlükəsizlik üçün çox vacibdir.