Middle
PendingIntent чист?
sobes.tech AI
Ҷавоб аз AI
PendingIntent წარმოადგენს ტოკენს, რომელიც სხვა აპლიკაციას აძლევს შესაძლებლობას, შეასრულოს კოდის ნაწილი თქვენი აპლიკაციის სახელით თქვენი დაშვებებით.
იგი გამოიყენება:
- შეტყობინებები (აქტივობის დაწყება შეტყობინებაზე დაჭერისას)
- სამუშაო ვიჯეტები (მომხმარებლის დაჭერების დამუშავება)
- გრაფიკის სერვისები (გაიმეორებადი დავალებები AlarmManager-თან)
ძირითადი განსხვავებები ჩვეულებრივ Intent-თან:
PendingIntentგადაეცემა სხვა აპლიკაციასPendingIntentინახავს თავდაპირველი აპლიკაციის დაშვებებს
PendingIntent ტიპები:
getActivity():Activity-ს დაწყებისთვის// PendingIntent-ის შექმნა Activity-ის დასაწყებად val intent = Intent(context, TargetActivity::class.java) val pendingIntent = PendingIntent.getActivity(context, 0, intent, 0)getService():Service-ის დასაწყებად// PendingIntent-ის შექმნა Service-ის დასაწყებად val intent = Intent(context, MyService::class.java) val pendingIntent = PendingIntent.getService(context, 0, intent, 0)getBroadcast(): გამავრცელებელი შეტყობინების გაგზავნა// PendingIntent-ის შექმნა Broadcast-ის გაგზავნისთვის val intent = Intent("MY_ACTION") val pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0)
PendingIntent-ის ნიშნულები გავლენას ახდენენ მის ქცევაზე:
| ნიშანი | აღწერა |
|---|---|
FLAG_ONE_SHOT |
PendingIntent-ის გამოყენება მხოლოდ ერთხელ შეიძლება. |
FLAG_NO_CREATE |
თუ PendingIntent არ არსებობს, არ შექმნას, დააბრუნოს null. |
FLAG_CANCEL_CURRENT |
თუ იგივე Intent-ით უკვე არსებობს PendingIntent, გაუქმება და ახალი შექმნა. |
FLAG_UPDATE_CURRENT |
თუ იგივე Intent-ით უკვე არსებობს PendingIntent, განახლება მისი Extra-ით. |
FLAG_IMMUTABLE |
PendingIntent-ი არ შეიძლება შეიცვალოს სხვა აპლიკაციების მიერ (სურვილია). |
პირველადი PendingIntent-ის გამოყენებისას მნიშვნელოვანია მიუთითოთ უნიკალური კოდები მოთხოვნისთვის (მეორე არგუმენტი getActivity, getService, getBroadcast მეთოდებში), რათა განასხვავოთ ისინი.