Middle
Šta je PendingIntent?
sobes.tech АИ
Одговор од АИ
PendingIntent predstavlja token koji omogućava drugoj aplikaciji da izvrši deo koda u ime vaše aplikacije sa vašim dozvolama.
Koristi se za:
- Obaveštenja (pokretanje aktivnosti kada se klikne na obaveštenje).
- Widgete radne površine (obrada klikova korisnika).
- Planirane usluge (ponovljivi zadaci sa AlarmManager-om).
Glavne razlike u odnosu na običan Intent:
PendingIntentse prenosi drugoj aplikaciji.PendingIntentčuva dozvole originalne aplikacije.
Tipovi PendingIntent:
getActivity(): za pokretanjeActivity.// Kreiranje PendingIntent za pokretanje Activity val intent = Intent(context, TargetActivity::class.java) val pendingIntent = PendingIntent.getActivity(context, 0, intent, 0)getService(): za pokretanjeService.// Kreiranje PendingIntent za pokretanje Service val intent = Intent(context, MyService::class.java) val pendingIntent = PendingIntent.getService(context, 0, intent, 0)getBroadcast(): za slanje broadcast poruke.// Kreiranje PendingIntent za slanje Broadcast val intent = Intent("MY_ACTION") val pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0)
Zastavice PendingIntent utiču na ponašanje:
| Zastavica | Opis |
|---|---|
FLAG_ONE_SHOT |
PendingIntent se može koristiti samo jednom. |
FLAG_NO_CREATE |
Ako PendingIntent ne postoji, nemojte ga kreirati, vratite null. |
FLAG_CANCEL_CURRENT |
Ako već postoji PendingIntent sa istim Intentom, otkažite ga i kreirajte novi. |
FLAG_UPDATE_CURRENT |
Ako već postoji PendingIntent sa istim Intentom, ažurirajte njegove Extra podatke. |
FLAG_IMMUTABLE |
PendingIntent ne može biti izmenjen od strane drugih aplikacija (preporučuje se). |
Prilikom korišćenja PendingIntent, važno je navesti jedinstvene kodove zahteva (drugi argument u metodama getActivity, getService, getBroadcast) da biste ih razlikovali.