Middle
Mis on PendingIntent?
sobes.tech AI
Vastus AI-lt
PendingIntent on märk, mis võimaldab teisel rakendusel täita osa teie rakenduse koodist teie luba kasutades.
Seda kasutatakse:
- teavitustes (aktiivsuse käivitamine teavitusele klõpsates)
- töölaua vidinates (kasutaja klõpsude töötlemine)
- plaanimisteenustes (korduvad ülesanded AlarmManageriga)
Peamised erinevused tavalise Intent-iga:
PendingIntentedastatakse teisele rakenduselePendingIntentsäilitab algse rakenduse load
PendingIntent tüübid:
getActivity(): tegevuse käivitamiseks// PendingIntent loomine tegevuse käivitamiseks val intent = Intent(context, TargetActivity::class.java) val pendingIntent = PendingIntent.getActivity(context, 0, intent, 0)getService(): teenuse käivitamiseks// PendingIntent loomine teenuse käivitamiseks val intent = Intent(context, MyService::class.java) val pendingIntent = PendingIntent.getService(context, 0, intent, 0)getBroadcast(): levitussõnumi saatmiseks// PendingIntent loomine levitussõnumi saatmiseks val intent = Intent("MY_ACTION") val pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0)
PendingIntent lipud mõjutavad selle käitumist:
| Lipp | Kirjeldus |
|---|---|
FLAG_ONE_SHOT |
PendingIntent saab kasutada ainult üks kord. |
FLAG_NO_CREATE |
Kui PendingIntent ei eksisteeri, ära loo seda, tagasta null. |
FLAG_CANCEL_CURRENT |
Kui sama Intent-iga juba olemas PendingIntent, tühista see ja loo uus. |
FLAG_UPDATE_CURRENT |
Kui sama Intent-iga juba olemas PendingIntent, uuenda selle Extra. |
FLAG_IMMUTABLE |
PendingIntent ei saa olla muudetud teiste rakenduste poolt (soovitatav). |
PendingIntent kasutamisel on oluline märkida unikaalsed päringukoodid (teine argument meetodites getActivity, getService, getBroadcast), et neid eristada.