نوتیفیکیشن ها - برنامه نویسی اندروید

نوتیفیکیشن پیامی است که می توانید خارج از رابط کاربری عادی برنامه خود به کاربر نمایش دهید. وقتی به سیستم می‌گویید نوتیفیکیشن ارسال کند، ابتدا به عنوان یک نماد در قسمت اعلان ظاهر می‌شود. برای مشاهده جزئیات نوتیفیکیشن، کاربر کشوی اعلان را باز می کند. هر دو ناحیه اعلان و کشوی نوتیفیکیشن، مناطقی هستند که توسط سیستم کنترل می شود که کاربر می تواند در هر زمانی آنها را مشاهده کند.

کلاس Toast در اندروید یک راه مفید برای نشان دادن هشدارها به کاربران ارائه می دهد، اما مشکل این است که این هشدارها پایدار نیستند، به این معنی که هشدار برای چند ثانیه روی صفحه چشمک می زند و سپس ناپدید می شود. برای مشاهده جزئیات نوتیفیکیشن، باید نمادی را انتخاب کنید که کشوی اعلان را با جزئیات مربوط به اعلان نمایش می دهد. هنگام کار با شبیه ساز با دستگاه مجازی، باید روی نوار وضعیت کلیک کرده و آن را به سمت پایین بکشید تا آن را کامل باز کنید. بعد از باز کردن کامل, جزئیات را به شکل زیر به شما ارائه می دهد:

نوتیفیکیشن در اندروید

صفحه باز شده بالا می‌تواند نمای بزرگی داشته باشد که جزئیات بیشتری در مورد نوتیفیکیشن دارد. می توانید حداکثر شش خط دیگر را در نوتیفیکیشن اضافه کنید.

ایجاد و ارسال نوتیفیکیشن ها

شما راه ساده ای برای ایجاد نوتیفیکیشن دارید. برای ایجاد نوتیفیکیشن مراحل زیر را دنبال کنید و آنها را در پروژه خود پیاده کنید:

مرحله 1 – Notification Builder را ایجاد کنید

اولین گام این است که با استفاده از NotificationCompat.Builder.build یک نوتیفیکیشن ساز ایجاد کنید. از Notification Builder برای تنظیم ویژگی های مختلف Notification مانند نمادهای کوچک و بزرگ، عنوان، اولویت و غیره استفاده خواهید کرد.

NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)

مرحله 2 – تنظیم ویژگی های نوتیفیکیشن

هنگامی که شی Builder را دارید، می توانید ویژگی های Notification آن را با استفاده از شی Builder مطابق با نیاز خود تنظیم کنید و از آن استفاده کنید. در پایین 3 مورد ضرور که باید تنظیم شوند را آورده ایم:

  1. تنظیم آیکن کوچک با استفاده از متد setSmallIcon()
  2. نمایش عنوان با استفاده از متد setContentTitle()
  3. متن جزییات با استفاده از متد setContentText() تنظیم میشود
mBuilder.setSmallIcon(R.drawable.notification_icon);
mBuilder.setContentTitle("هشدار نوتیفیکیشن, کلیک کنید");
mBuilder.setContentText("سلام, این یک متن جزییات برای نوتیفیکیشن در اندروید میباشد, تیم سِون کلونر");

شما ویژگی های اختیاری زیادی دارید که می توانید برای نوتیفیکیشن خود تنظیم کنید. برای کسب اطلاعات بیشتر در مورد آنها، به مستندات مرجع برای NotificationCompat.Builder مراجعه کنید.

مرحله 3 – Actions را پیوست کنید

این یک بخش اختیاری است و اگر می‌خواهید عملی را به نوتیفیکیشن پیوست کنید میتوانید از آن استفاده کنید. یک عمل به کاربران امکان می‌دهد مستقیماً از نوتیفیکیشن به یک Activity در برنامه شما بروند، جایی که می‌توانند یک یا چند رویداد را مشاهده کنند یا کارهای بیشتری انجام دهند.

این عمل توسط یک PendingIntent حاوی یک Intent تعریف می شود که یک Activity را در برنامه شما شروع می کند. برای مرتبط کردن PendingIntent با یک حرکت، متد مناسب NotificationCompat.Builder را فراخوانی کنید. برای مثال، اگر می‌خواهید وقتی کاربر روی متن اعلان در کشوی اعلان کلیک می‌کند، Activity را شروع کنید، با فراخوانی متد setContentIntent() مقدار PendingIntent را اضافه می‌کنید.

یک شی PendingIntent به شما کمک می کند تا یک عمل را از طرف برنامه خود انجام دهید، در اغلب موارد این کار در زمانی دیگری انجام میشود و برای انجام اهمیتی ندارد که برنامه شما در حال اجرا است یا خیر. ما از شی سازنده پشته کمک می گیریم که حاوی یک پشته مصنوعی برای اکتیویتی شروع شده است.

Intent resultIntent = new Intent(this, ResultActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(ResultActivity.class);

//Intent را که Activity را شروع می کند به بالای پشته اضافه می کند
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(resultPendingIntent);

مرحله 4 – صادر کردن نوتیفیکیشن

در نهایت، با فراخوانی NotificationManager.notify() شی Notification را به سیستم ارسال می کنید تا نوتیفیکیشن شما ارسال شود. مطمئن شوید که متد NotificationCompat.Builder.build() را روی شی Builder قبل از اطلاع رسانی آن فراخوانی کرده اید. این متد همه گزینه هایی را که تنظیم شده اند ترکیب می کند و یک شی Notification جدید را برمی گرداند.

NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    
// notificationID به شما امکان می دهد اعلان را بعداً به روز کنید.
mNotificationManager.notify(notificationID, mBuilder.build());

کلاس NotificationCompat.Builder

کلاس NotificationCompat.Builder امکان کنترل آسان‌تر روی همه flagها و همچنین کمک به ساخت طرح‌بندی نوتیفیکیشن های معمولی را فراهم می‌کند. در پایین متدهای مهم و پرکاربرد موجود بعنوان بخشی از کلاس NotificationCompat.Builder آورده شده است.

متد و توضیحات ردیف
متد build() در آبجکت Notification

همه گزینه‌هایی که تنظیم شده‌اند را درون یک شی اعمال میکند و آن شی Notification جدید را برمیگرداند.

1
 متد setAutoCancel (boolean autoCancel) و قابل استفاده در آبجکت NotificationCompat.Builder

تنظیم این flag باعث می شود تا وقتی کاربر روی نوتیفیکیشن کلیک می کند، نوتیفیکیشن بطور خودکار لغو شود.

2
متد setContent (RemoteViews views) و قابل استفاده در آبجکت NotificationCompat.Builder

یک RemoteViews سفارشی را دریافت میکند و برای استفاده به جای view استاندارد میتوانید تنظیم کنید.

3
متد setContentInfo (CharSequence info) و قابل استفاده در آبجکت NotificationCompat.Builder

تنظیم متن بزرگ در سمت راست نوتیفیکیشن.

4
متد setContentIntent (PendingIntent intent) و قابل استفاده در آبجکت NotificationCompat.Builder

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

5
متد setContentText (CharSequence text) و قابل استفاده در آبجکت NotificationCompat.Builder

متن نوتیفیکیشن در ردیف دوم را تنظیم میکند در نوتیفیکیشن های استاندارد استفاده میشود.

6
متد setContentTitle (CharSequence title) و قابل استفاده در آبجکت NotificationCompat.Builder

متن نوتیفیکیشن در ردیف اول تنظیم میکند و تنها در نوتیفیکیشن های استاندارد استفاده میشود.

7

متدهای عمومی

متد و توضیحات ردیف
متد setDefaults (int defaults) و قابل استفاده در آبجکت NotificationCompat.Builder

گزینه های پیش فرض اعلان را که مورد استفاده قرار خواهند گرفت را تنظیم میکند.

8
متد setLargeIcon (Bitmap icon) و قابل استفاده در آبجکت NotificationCompat.Builder

آیکن بزرگ را که اعلان ها نشان داده میشود را تنظیم میکند.

9
متد setNumber (int number) و قابل استفاده در آبجکت NotificationCompat.Builder

عدد بزرگ را در سمت راست اعلان تنظیم میکند.

10
متد setOngoing (boolean ongoing) و قابل استفاده در آبجکت NotificationCompat.Builder

تنظیم میکند که آیا این یک نوتیفیکیشن در حال انجام است یا خیر.

11
متد setSmallIcon (int icon) و قابل استفاده در آبجکت NotificationCompat.Builder

آیکن کوچک را برای استفاده در طرح‌بندی اعلان‌ها تنظیم میکند.

12
متد setStyle (NotificationCompat.Style style) و قابل استفاده در آبجکت NotificationCompat.Builder

یک استایل برای نوتیفیکیشن اضافه میکند تا در زمان ساخت اعمال شود.

13
متد setTicker (CharSequence tickerText) و قابل استفاده در آبجکت NotificationCompat.Builder

متنی را تنظیم میکند که هنگام دریافت اعلان در نوار وضعیت نمایش داده شود.

14
متد setVibrate (long[] pattern) و قابل استفاده در آبجکت NotificationCompat.Builder

الگوی لرزش را برای استفاده تنظیم میکند که هنگام نمایش نوتیفیکیشن تلفن بلرزد.

15
متد setWhen (long when) و قابل استفاده در آبجکت NotificationCompat.Builder

زمان وقوع رویداد را تنظیم میکند و Notification ها را در پنل بر اساس این زمان مرتب می کند.

16
قیمت آموزش
رایگان
نوع دسترسی
رایگان

این مقاله در حال حاضر تنها به روش رایگان در دسترس می باشد.

ناصر خالدی
مدرس دوره

ناصر خالدی

مهندس شبکه, امنیت, برنامه نویسی تلفن های هوشمند, طراح وب سایت و متخصص هوش مصنوعی

گفتگوی برنامه نویسان

بخشی برای حل مشکلات برنامه‌نویسی و مباحث پیرامون آن

دوره های پیشنهادی

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر نیاز است تا ابتدا وارد سایت شوید.

هیچ نظری ارسال نشده است.

مقالات پیشنهادی

اندروید

اندروید یک سیستم عامل می باشد که توسط گوگل توسعه داده میشود, این سیستم عامل بر پایه نسخه ی اصلاح شده ی هسته ی لینوکس و دیگر نرم افزار های متن باز طراحی شده است و ...


۱۵۳
۰
۲۹ آبان ۱۳۹۹

درباره فایل Robots.txt

این فایل ربات های خزنده موتور های جستجو را راهنمایی می کنند و به آنان می فهماند که چه دایرکتوری و لینک هایی قابل بررسی و چه دایرکتوری و لینک هایی غیرقابل برررسی می باشند...


۱۲۰
۰
۲ دی ۱۳۹۹

جاوا اسکریپت

جاوا اسکریپت یک زبان پویا و محبوب مبتنی بر شیء, داینامیک و مفسری می باشد. این زبان برای برنامه نویسی سمت سرور و کلاینت استفاده میشود که ...


۱۲۴
۰
۱۳ آذر ۱۳۹۹

وردپرس

وردپرس یک سیستم مدیریت محتوای قوی می باشد که با استفاده از آن می توان وب سایت ها و وبلاگ های گوناگونی با هر شرایطی را طراحی کرد چرا که این سیستم و ...


۱۲۷
۰
۱۳ آذر ۱۳۹۹