آموزش برنامه نویسی اندروید (Android)
۴۱۹ آموزش
نمایش دسته بندی ها (۴۱۹ آموزش)

نمایش یک پیام (Notification) در notification bar (یا همان status bar)، با استفاده از NotificationManager ، به صورت قابل اشاره و قابل حذف، در برنامه نویسی اندروید

برای نمایش یک پیام در notification bar (یا همان status bar)، کدهای زیر را می نویسیم :


NotificationCompat.Builder mBuilder =   new NotificationCompat.Builder(this)
    .setSmallIcon(R.drawable.ic_launcher) // notification icon
    .setContentTitle("Notification!") // title for notification
    .setContentText("kelidestan.com") // message for notification
    .setAutoCancel(true); // clear notification after click
Intent intent = new Intent(this, MainActivity.class);
PendingIntent pi = PendingIntent.getActivity(this,0,intent,Intent.FLAG_ACTIVITY_NEW_TASK);
mBuilder.setContentIntent(pi);
NotificationManager mNotificationManager =
                (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(0, mBuilder.build());

نتیجه اجرای کدها، نمایش یک پیام در notification bar (یا همان status bar) می باشد :

نمایش یک پیام (Notification) در notification bar (یا همان status bar)، با استفاده از NotificationManager ، به صورت قابل اشاره و قابل حذف، در برنامه نویسی اندروید
نمایش یک پیام (Notification) در notification bar (یا همان status bar)، با استفاده از NotificationManager ، به صورت قابل اشاره و قابل حذف، در برنامه نویسی اندروید

دقت شود که با اشاره کاربر بر روی notification ، حتی اگر کاربر برنامه اندروید را بسته باشد، برنامه اندروید باز شده و Activity ای که تعیین کرده ایم (در این کدها، Activity با نام MainActivity)، نمایش داده می شود.

با خط زیر از کدها، عکس مربوط به آیکون (icon) نمایش داده شده در notification را تعیین کرده ایم :


.setSmallIcon(R.drawable.ic_launcher) // notification icon

با خط زیر از کدها، عنوان (title) نمایش داده شده در notification را تعیین کرده ایم :


.setContentTitle("Notification!") // title for notification

با خط زیر از کدها، پیام (متن - message) نمایش داده شده در notification را تعیین کرده ایم :


.setContentText("kelidestan.com") // message for notification

با خط زیر از کدها تعیین کرده ایم که اگر کاربر بر روی notification اشاره کند، notification از notification bar (یا همان status bar) حذف شده و دیگر نمایش داده نشود.


.setAutoCancel(true); // clear notification after click

با چند خط زیر از کدها، تعیین کرده ایم که پس از اشاره کاربر بر روی notification ، حتی اگر برنامه اندروید باز نباشد، برنامه باز شده و Activity با نام MainActivity از برنامه اندروید، نمایش داده شود (در صورت دلخواه، نام Activity را به نام مورد نظر خود تغییر بدهید) :


Intent intent = new Intent(this, MainActivity.class);
PendingIntent pi = PendingIntent.getActivity(this,0,intent,Intent.FLAG_ACTIVITY_NEW_TASK);
mBuilder.setContentIntent(pi);

با خط زیر از کدها، اعلام کرده ایم که notification ای که طراحی شده است، در notification bar (یا همان status bar) نمایش داده شود :


mNotificationManager.notify(0, mBuilder.build());
نویسنده علیرضا گلمکانی
شماره کلید 2611
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 10 10 0
حسین
۱۳۹۵/۰۸/۱۳
۱۳:۰۷

با تشکر از توضیحات خوبتون.

من یه سوال داشتم.
اگر بخواهیم به کاربر هفته ای یک بار به صورت اتومات بیامی مبنی بر یادآوری در استاتوس ارسال بشه چکار باید کرد؟
مثلا من میخوام هر سه شنبه به کاربرام این بیامو بدم که یه کار خاص انجام بدن.

admin
۱۳۹۵/۰۸/۱۴
۲۳:۱۰

سلام.
برای زمان بندی اجرای کدها در آینده، می توانید از AlarmManager استفاده کنید.

شاهرخ
۱۳۹۶/۰۴/۱۷
۰۹:۳۵

سلام، اول از همه تشکر می کنم بابت تمام زحماتی که می کشید و از همه مهمتر بابت آموزش های خوبتون...
یه سوال خدمتتون داشتم ممنون میشم راهنمایی کنید...
من یه دیتابیس ساختم و از طریق TimePicker زمان رو درون اون ذخیره کردم. وقتی که اطلاعات رو باز یابی میکنم و زمان رو درون notification به وسیله AlarmManager قرار میدم، اتفاقی که میوفته این هست که notification به جای اینکه در زمان وارد شده اتفاق بیوفته به محض بالا اومدن activity نشون داده میشه...
چجوری میتونم کاری کنم در زمان درست خودش notification به نمایش دربیاد؟؟؟
همچنین از دستور setRepeating استفاده کردم ولی دستور setExact و set  هم دقیقا همین اتفاق میوفته...

با تشکر

admin
۱۳۹۶/۰۴/۱۸
۰۹:۳۶

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



rexo
۱۳۹۶/۰۴/۱۸
۱۵:۲۷

ممنون از پاسخ شما...
ولی الان با یه مشکل جدید برخورد کردم. اون هم اینکه این Notification فقط برای دو آیتم اول به نمایش در میاد...
چجوری می تونم تمامی اطلاعاتی که از دیتابیس گرفتم رو برای notification ست کنم؟؟؟

ممنون میشم راهنمایی بفرمایید...

jef313
۱۳۹۶/۱۰/۲۵
۰۹:۵۶

شرمنده اینجا پیام میدم
قسمت تماس با ما سایت فعال نیست
چرا نمیتونم جایی برای ارسال یک سوال با موضوع جدید در انجمن پیدا کنم؟

لطفا راهنمایی کنید.

admin
۱۳۹۶/۱۰/۲۵
۱۲:۳۶

سلام.
صفحه ((تماس با ما)) بررسی شد و مشکلی در ارسال پیام در آن وجود ندارد. در این مواقع، بهتر است با یک مرورگر اینترنت دیگر امتحان کنید.
برای ارسال موضوع جدید در انجمن، راهنمای زیر را بخوانید :



jef313
۱۳۹۶/۱۰/۲۵
۱۶:۱۷

ممنون ادمین جان
تماس با ما از داخل انجمن فعال نیست
موضوع را در انجمن ارسال کردم لطفا بررسی کنید

atoosa
۱۳۹۸/۰۴/۲۴
۰۴:۴۳

سلام
من دقیقا همین دستوری که گفتین کپی کردم
اما در قسمت Intent.FLAG_ACTIVITY_NEW_TASK با ارور مواجه میشم که در توضیحش چنین نوشته ای رو میاره
  Must be one or more of: PendingIntent.FLAG_ONE_SHOT, PendingIntent.FLAG_NO_CREATE, PendingIntent.FLAG_CANCEL_CURRENT, PendingIntent.FLAG_UPDATE_CURRENT, PendingIntent.FLAG_IMMUTABLE, Intent.FILL_IN_ACTION, Intent.FILL_IN_DATA, Intent.FILL_IN_CATEGORIES, Intent.FILL_IN_COMPONENT, Intent.FILL_IN_PACKAGE, Intent.FILL_IN_SOURCE_BOUNDS, Intent.FILL_IN_SELECTOR, Intent.FILL_IN_CLIP_DATA less... (Ctrl+F1) 

Inspection info:Ensures that when parameter in a method only allows a specific set of constants, calls obey those rules.  Issue id: WrongConstant
چطوری می تونم این مشکل برطرف کنم؟ 

Ali
۱۳۹۹/۱۲/۰۲
۲۳:۱۴

سلام
چطور میتونم فایل نصبی این پروژه رو داشته باشم؟

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)