نمایش یک پیام (Notification) در notification bar (یا همان status bar)، با استفاده از NotificationManager ، به صورت قابل اشاره و قابل حذف، در برنامه نویسی اندروید
برای نمایش یک پیام در notification bar (یا همان status bar)، کدهای زیر را می نویسیم :
.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 ، حتی اگر کاربر برنامه اندروید را بسته باشد، برنامه اندروید باز شده و Activity ای که تعیین کرده ایم (در این کدها، Activity با نام MainActivity)، نمایش داده می شود.
با خط زیر از کدها، عکس مربوط به آیکون (icon) نمایش داده شده در notification را تعیین کرده ایم :
با خط زیر از کدها، عنوان (title) نمایش داده شده در notification را تعیین کرده ایم :
با خط زیر از کدها، پیام (متن - message) نمایش داده شده در notification را تعیین کرده ایم :
با خط زیر از کدها تعیین کرده ایم که اگر کاربر بر روی notification اشاره کند، notification از notification bar (یا همان status bar) حذف شده و دیگر نمایش داده نشود.
با چند خط زیر از کدها، تعیین کرده ایم که پس از اشاره کاربر بر روی notification ، حتی اگر برنامه اندروید باز نباشد، برنامه باز شده و Activity با نام MainActivity از برنامه اندروید، نمایش داده شود (در صورت دلخواه، نام Activity را به نام مورد نظر خود تغییر بدهید) :
PendingIntent pi = PendingIntent.getActivity(this,0,intent,Intent.FLAG_ACTIVITY_NEW_TASK);
mBuilder.setContentIntent(pi);
با خط زیر از کدها، اعلام کرده ایم که notification ای که طراحی شده است، در notification bar (یا همان status bar) نمایش داده شود :
با تشکر از توضیحات خوبتون.
من یه سوال داشتم.
اگر بخواهیم به کاربر هفته ای یک بار به صورت اتومات بیامی مبنی بر یادآوری در استاتوس ارسال بشه چکار باید کرد؟
مثلا من میخوام هر سه شنبه به کاربرام این بیامو بدم که یه کار خاص انجام بدن.
سلام.
برای زمان بندی اجرای کدها در آینده، می توانید از AlarmManager استفاده کنید.
سلام، اول از همه تشکر می کنم بابت تمام زحماتی که می کشید و از همه مهمتر بابت آموزش های خوبتون...
یه سوال خدمتتون داشتم ممنون میشم راهنمایی کنید...
من یه دیتابیس ساختم و از طریق TimePicker زمان رو درون اون ذخیره کردم. وقتی که اطلاعات رو باز یابی میکنم و زمان رو درون notification به وسیله AlarmManager قرار میدم، اتفاقی که میوفته این هست که notification به جای اینکه در زمان وارد شده اتفاق بیوفته به محض بالا اومدن activity نشون داده میشه...
چجوری میتونم کاری کنم در زمان درست خودش notification به نمایش دربیاد؟؟؟
همچنین از دستور setRepeating استفاده کردم ولی دستور setExact و set هم دقیقا همین اتفاق میوفته...
با تشکر
سلام.
در ، راه حل را خودتان بیان کردید، اما به هر حال بنده یک کلید آموزشی در مورد AlarmManager نوشتم تا سایر کاربران از آن استفاده کنند :
ممنون از پاسخ شما...
ولی الان با یه مشکل جدید برخورد کردم. اون هم اینکه این Notification فقط برای دو آیتم اول به نمایش در میاد...
چجوری می تونم تمامی اطلاعاتی که از دیتابیس گرفتم رو برای notification ست کنم؟؟؟
ممنون میشم راهنمایی بفرمایید...
شرمنده اینجا پیام میدم
قسمت تماس با ما سایت فعال نیست
چرا نمیتونم جایی برای ارسال یک سوال با موضوع جدید در انجمن پیدا کنم؟
لطفا راهنمایی کنید.
سلام.
صفحه ((تماس با ما)) بررسی شد و مشکلی در ارسال پیام در آن وجود ندارد. در این مواقع، بهتر است با یک مرورگر اینترنت دیگر امتحان کنید.
برای ارسال موضوع جدید در انجمن، راهنمای زیر را بخوانید :
ممنون ادمین جان
تماس با ما از داخل انجمن فعال نیست
موضوع را در انجمن ارسال کردم لطفا بررسی کنید
سلام
من دقیقا همین دستوری که گفتین کپی کردم
اما در قسمت 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
چطوری می تونم این مشکل برطرف کنم؟
سلام
چطور میتونم فایل نصبی این پروژه رو داشته باشم؟