ساخت نوتیفیکشن در اندروید
بعد از مدتی طولانی یک بخش جدید به سایت اضافه شد و در آن به بررسی مباحث مختلف برای اندروید میپردازیم. همراه ما باشید.
ساخت نوتیفیکشن در اندروید
برای شروع ابتدا وارد Activity خود شوید.
ابتدا در بالای Activity خود کتابخانههای زیر را اضافه کنید:
import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Intent;
سپس در بخش اصلی class اکتیویتی مورد نظر کد زیر را وارد کنید:
NotificationManager manager; Notification myNotication;
در بالا شما یک NotifitcationManager و یک Notification برای خود تعریف کردید.
در مرحلهی بعد به سراغ Event مورد نظر خود بروید و کد زیر را وارد کنید:
manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Intent intent = new Intent("com.rj.notitfications.SECACTIVITY");
PendingIntent pendingIntent = PendingIntent.getActivity(homeActivity.this, 1, intent, 0);
Notification.Builder builder = new Notification.Builder(homeActivity.this);
builder.setAutoCancel(false);
builder.setTicker(" ");
builder.setContentTitle("CamelCase.ir Notification");
builder.setContentText("Enjoy This App");
builder.setSmallIcon(R.drawable.notif);
builder.setContentIntent(pendingIntent);
builder.setOngoing(true);
builder.setSubText("");
builder.setNumber(100);
builder.build();
myNotication = builder.getNotification();
manager.notify(11, myNotication);
نکته:
در کد بالا نام Activity ما homeActivity است که با توجه به نام Activity خود در خط 4 و 5 کد بالا نام مورد نظر خود را وارد کنید. تمام؛ حالا برنامهی خود را اجرا کنید و Event مورد نظر خود را اجرا کنید.
اگر تمامی موارد بالا را درست انجام دهید نتیجه به شکل زیر خواهد شد. (برنامهی بالا با اندروید استادیو تست شده است.)

اگر مشکلی یا راه حل بهتری برای ساخت نوتیفیکشن در اندروید سراغ دارید برای ما ارسال کنید تا با دیگران به اشتراگ بگذاریم.



















من همیشه با PendingIntent مشکل دارم، مخصوصا وقتی چند نوتیف مختلف میسازم
PendingIntent ها واقعا بعضی وقتا گیجکنندهان، مخصوصا وقتی چند نوتیف میسازی. باید توجه داشته باشی شناسهی متفاوت یا فلگهای مناسب رو تنظیم کنی تا هر نوتیف مستقل باشه و تداخل نداشته باشن.
یه جا خونده بودم از NotificationCompat.Builder استفاده کنن برای سازگاری بهتر، درسته؟
درسته، NotificationCompat.Builder برای سازگاری بهتر با نسخههای مختلف اندروید توصیه میشه چون از APIهای قدیمیتر پشتیبانی میکنه و کدت رو ایمنتر میکنه.
به نظرتون بهتر نیست autoCancel رو true بذاریم که با کلیک حذف شه؟
autoCancel = true خوبه چون وقتی کاربر روی نوتیف کلیک میکنه، نوتیف خودبهخود حذف میشه و تجربه کاربری بهتری ایجاد میکنه.
PendingIntent رو چجوری cancel کنیم؟
برای لغو یک PendingIntent، میتونی با استفاده از همون PendingIntent که ساختی، متد cancel() رو صدا بزنی تا اون رو حذف کنی و نوتیف یا اکشن مربوطه غیرفعال بشه.
این روش روی نسخههای جدید اندروید هم جواب میده یا deprecated شده؟
بعضی روشها و فلگهای PendingIntent در نسخههای جدید اندروید تغییر کردن یا deprecated شدن، پس بهتره مستندات رسمی رو چک کنی و از روشهای جدید و توصیه شده استفاده کنی تا سازگاری و امنیت حفظ بشه.