Sobes.tech
Middle

PendingIntent nədir?

sobes.tech Süni İntellekt

AI-dan cavab

PendingIntent, başqa bir tətbiqə, tətbiqinizin adından kodun bir hissəsini icra etmək imkanı verən bir tokendir.

O, aşağıdakı üçün istifadə olunur:

  • Bildirişlər (bildiriciyə kliklədikdə fəaliyyətə başlamaq).
  • Masaüstü widgetləri (istifadəçi kliklərini işləmək).
  • Planlaşdırıcı xidmətlər (AlarmManager ilə təkrarlanan tapşırıqlar).

Adi Intent-dən əsas fərqlər:

  • PendingIntent, başqa bir tətbiqə ötürülür.
  • PendingIntent, orijinal tətbiqin icazələrini saxlayır.

PendingIntent növləri:

  • getActivity(): Activity başlatmaq üçün.
    // Activity başlatmaq üçün PendingIntent yaradın
    val intent = Intent(context, TargetActivity::class.java)
    val pendingIntent = PendingIntent.getActivity(context, 0, intent, 0)
    
  • getService(): Service başlatmaq üçün.
    // Service başlatmaq üçün PendingIntent yaradın
    val intent = Intent(context, MyService::class.java)
    val pendingIntent = PendingIntent.getService(context, 0, intent, 0)
    
  • getBroadcast(): Broadcast mesajı göndərmək üçün.
    // Broadcast göndərmək üçün PendingIntent yaradın
    val intent = Intent("MY_ACTION")
    val pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0)
    

PendingIntent bayraqları onların davranışına təsir edir:

Bayraq Təsviri
FLAG_ONE_SHOT PendingIntent yalnız bir dəfə istifadə oluna bilər.
FLAG_NO_CREATE Əgər PendingIntent mövcud deyilsə, onu yaratmayın, null qaytarın.
FLAG_CANCEL_CURRENT Əgər eyni Intent ilə PendingIntent artıq mövcuddursa, onu ləğv edin və yenisini yaradın.
FLAG_UPDATE_CURRENT Əgər eyni Intent ilə PendingIntent artıq mövcuddursa, onun Extras-ını yeniləyin.
FLAG_IMMUTABLE PendingIntent digər tətbiqlər tərəfindən dəyişdirilə bilməz (tövsiyə olunur).

PendingIntent istifadə edərkən, onları fərqləndirmək üçün unikal sorğu kodlarını (ikinci arqument getActivity, getService, getBroadcast metodlarında) göstərmək vacibdir.