محمد صادق مهرافزون
محمد صادق مهرافزون
خواندن ۲ دقیقه·۱۰ ماه پیش

استفاده از Pending intent در اندروید

دستور PendingIntent توکنی است که به یک برنامه خارجی مانند NotificationManager، AlarmManager یا سایر برنامه های شخص ثالث می دهیدکه با استفاده از این دستور برنامه A می تواند یک PendingIntent را به برنامه B ارسال کند تا به برنامه B اجازه دهد تا اقدامات از پیش تعریف شده را از طرف برنامه A انجام دهد. صرف نظر از اینکه برنامه A هنوز درحال اجرا است یا خیر

این PendingIntent از روش های زیر برای مدیریت انواع مختلف intent استفاده می کند:

دستور ()PendingIntent.getActivity : برای شروع یک activity
دستور ()PendingIntent.getBroadcast : برای انجام یک Broadcast
دستور ()PendingIntent.getService : برای راه اندازی یک سرویس


عملیات مرتبط با pendingIntent با استفاده از متد ()send اجرا می شود. پارامترهای داخل متد ()getActivity و کاربرد آنها در زیر توضیح داده شده است:

  1. پارامتر this: اولین پارامتر برای context است که با استفاده از this این کار را انجام می دهیم و PendingIntent برای ما acttivity را در آن شروع می کند.
  2. پارامتر requestCode : پارامتر "1" کد درخواست خصوصی (private request) برای فرستنده است که در مثال بالا استفاده شده است. استفاده مجدد از آن با همان روش، همان PendingIntent را برمی‌گرداند. سپس می توانیم کارهای مختلفی مانند لغو PendingIntent با استفاده از متد ()cancel و ... انجام دهیم.
  3. پارامتر intent : با استفاده از این پارامتر activity که که باید راه اندازی شود را صدا میزنیم
  4. پارامتر flag : دستور PendingIntent از flag هایی پشتیبانی می کند که رفتار آنها را کنترل می کند. بیایید نگاهی به چند flag رایج بیندازیم:
  • مورد اول FLAG_UPDATE_CURRENT: این flag نشان می دهد که اگر pendingIntent توصیف شده از قبل وجود داشته باشد، داده های اضافی آن باید با داده های اضافی intent جدید به روز شود.
  • مورد دوم FLAG_CANCEL_CURRENT:اگر یک PendingIntent با همان توضیحات قبلاً وجود داشته باشد، قبل از ایجاد مورد جدید لغو خواهد شد.
  • مورد سوم FLAG_ONE_SHOT: این flag مشخص می کند که pendingIntent فقط یک بار می تواند استفاده شود. پس از راه اندازی به طور خودکار لغو می شود.
  • مورد چهارم FLAG_NO_CREATE: اگر یک PendingIntent با همان توضیحات قبلاً وجود نداشته باشد، ایجاد نخواهد شد و متد null برمی‌گرداند.

همانطور که در بالا گفتیم PendingIntent معمولاً با سرویس های سیستمی مانند AlarmManager، NotificationManager و موارد دیگر استفاده می شود. در اینجا به چند مورد از آنها اشاره می کنیم:

1. استفاده از PendingIntent با AlarmManager:

در این مثال، یک PendingIntent با یک broadcastReceiver (MyAlarmReceiver) ایجاد می شود که پس از 10 ثانیه فعال می شود.

2. استفاده از PendingIntent با NotificationManager:

در این مثال، یک PendingIntent با یک اعلان مرتبط است. وقتی کاربر روی اعلان ضربه می زند، PendingIntent مشخص شده فعال می شود.

3.استفاده از PendingIntent برای Activities:

در اینجا، یک PendingIntent برای راه اندازی یک activity زمانی که دکمه ای در یک اعلان یا ویجت کلیک می شود استفاده می شود.

4. استفاده از PendingIntent برای Service Start:


pendingintentبرنامه نویسیاندرویدnotificationalarmmanager
شاید از این پست‌ها خوشتان بیاید