یکی از عاشقان فلاتر و تلاش برای ایجاد جامعه فلاتر ایران برای دسترسی سریع و اسان به مطالب برنامه نویسی کانال تلگرام بنده را با ایدی Learnpg را دنبال کنید
ایجاد Custom Notification
سلام دوستان گل و عزیز سریع بریم سر اصل مطلب که میخواهیم نوتیفیکیشن با قابلیت ایجاد لایه دلخواه و همچنین قابلیت تعریف کلیک روی عناصر ان را داشته باشیم
در مرحله ی اول کد زیر را در اکتیویتی وارد میکنیم ولی قبل از ان هر لایه دلخواهی را خواستید طراحی کنید
Intent playmusic = new Intent(this , NotificationReceiver.class);
playmusic.setAction("PlayMusic");
PendingIntent pendingSwitchIntent = PendingIntent.getBroadcast(this, 0, playmusic, 0);
RemoteViews notificationView = new RemoteViews(getPackageName(), R.layout.notification);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this).
setSmallIcon(R.mipmap.ic_launcher)
.setStyle(new NotificationCompat.DecoratedCustomViewStyle())
.setContent(notificationView);
notificationView.setPendingIntent(R.id.imgplay, pendingSwitchIntent);
Notification notification = builder.build();
startForeground(1 , notification);
در مرحله ی اول توسط شی playmusic یک اکشن به نام PlayMusic به ان می دهیم که بعد از تعریف pendingSwitchIntent و پاس دادن شی اینتنت به ان رخداد کلیک بر روی دکمه مورد نظر را تنظیم کردیم که شما میتوانید برای view های مختلف اکشن های متفاوت تعریف کنید
سپس لایه مورد نظر را به شی notificationView پاس می دهیم و سپس تنظیمات اصلی نوتیفیکشن را ست میکنیم در اخر هم توسط startForeground نوتیفیکیشن را ایجاد میکنیم البته در این حالت باید در سرویس ها ان را ایجاد کنید ولی شما میتونید از NotificationManager برای Start نوتیفیکیشن استفاده کنید
و سپس ساخت یک BroadCast برای تعریف روخداد های اکشن های دلخواهمان
public static class NotificationReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
}
که در این جا میتوانیم با یک دستور Switch برای اکشن های مختلف رویداد های متفاوت بنویسیم
و در اخر هم یادمان نرود در Manifest مقادیر زیر را وارد کنیم
<receiver android:name=".ServiceNotification$NotificationReceiver" android:exported="false">
<intent-filter>
<action android:name="PlayMusic" />
</intent-filter>
</receiver>
و در نهایت هم Start برنامه و تماشای یک نوتیفیکیشن خوشگل موشگل :)
ببخشید کامل کامل توضیح ندادم چون اعتقاد دارم نباید لقمه را درسته گلوی دیگری گذاشت و باید اهسته اهسته جویدن را یادش بدهیم امیدوارم به کارتان امده باشه
مطلبی دیگر از این انتشارات
فی مصائب نشت حافظه در اندروید یا فرار از تله مموری لیک(بخش دوم)
مطلبی دیگر از این انتشارات
مجموعه تقلب مصاحبه شغلی برنامه نویس اندروید - قسمت دهم
مطلبی دیگر از این انتشارات
یه راه راحت برای کار با دیتابیس در اندروید