نوشته شده توسط ایلیا عابدینی در دوشنبه ششم مرداد 1393 |

Pending Intent

 

ترکیبی از درخواست عملیات (اجرای اکتیویتی،سرویس یا ارسال یک broadcast)،جزییات عملیات(در قالب یک intent) و یک context است. نمونه ایجاد شده می تواند به سایر برنامه های کاربردی واگذار گردد تا با کمک آنها حتی پس از اتمام برنامه ایجاد کننده pendingintent،عملیاتی انجام شود. همچنین PendingIntent دارای flag هایی است که عملکرد آنرا بسته به اینکه نمونه ای از آن pendingintent از قبل وجود داشته یا خیر،کنترل می کند.
نقش context در ساختار PendingIntent یک نقش امنیتی است به این معنی که اندروید فقط با مجموعه مجوزهای امنیتی همان context اقدام به اعمال pendingintent می کند.در نتیجه یک pendingintent نمی تواند در خواست دسترسی به سطوح امنیتی را داشته باشد که context آن فاقد مجوز لازم است.
با ارسال یک pendingintent به یک برنامه کاربردی دیگر،شما به آن برنامه حق استفاده از مجوزهای برنامه خود را اعطا می کنید.(برعکس intent ها که برنامه مقصد اگر بخواهد عملیاتی را انجام دهد با استفاده از مجوزهای خود اقدام خواهد کرد)بنابراین در هنگام استفاده از آن باید کاملا احتیاط کرد تا ناخواسته این مجوزها به برنامه دیگری اعطا نشود(مثلا نام مولفه مقصد در صورت امکان صریحا ذکر شود)
منابع:
1-stackoverflow
2-stackoverflow
3-developer.android