Middle
PendingIntent nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
PendingIntent, başka bir uygulamaya, uygulamanızın izinleriyle kodun bir bölümünü çalıştırma imkanı sağlayan bir jetondur.
Kullanım alanları:
- Bildirimler (bildirime tıklandığında aktiviteyi başlatmak).
- Masaüstü widget'ları (kullanıcı tıklamalarını işleme).
- Planlayıcı servisleri (AlarmManager ile tekrarlayan görevler).
Normal Intent'ten temel farklar:
PendingIntent, başka bir uygulamaya iletilir.PendingIntent, orijinal uygulamanın izinlerini korur.
PendingIntent türleri:
getActivity(): BirActivitybaşlatmak için.// Activity başlatmak için PendingIntent oluşturma val intent = Intent(context, TargetActivity::class.java) val pendingIntent = PendingIntent.getActivity(context, 0, intent, 0)getService(): BirServicebaşlatmak için.// Service başlatmak için PendingIntent oluşturma val intent = Intent(context, MyService::class.java) val pendingIntent = PendingIntent.getService(context, 0, intent, 0)getBroadcast(): Yayın mesajı göndermek için.// Broadcast göndermek için PendingIntent oluşturma val intent = Intent("MY_ACTION") val pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0)
PendingIntent bayrakları davranışlarını etkiler:
| Bayrak | Açıklama |
|---|---|
FLAG_ONE_SHOT |
PendingIntent sadece bir kez kullanılabilir. |
FLAG_NO_CREATE |
Eğer PendingIntent yoksa, oluşturma, null döndür. |
FLAG_CANCEL_CURRENT |
Aynı Intent ile bir PendingIntent zaten varsa, iptal et ve yenisini oluştur. |
FLAG_UPDATE_CURRENT |
Aynı Intent ile bir PendingIntent zaten varsa, Extras'larını güncelle. |
FLAG_IMMUTABLE |
PendingIntent başka uygulamalar tarafından değiştirilemez (önerilir). |
PendingIntent kullanırken, onları ayırt etmek için benzersiz istek kodları (getActivity, getService, getBroadcast metodlarındaki ikinci argüman) belirtmek önemlidir.