ایجاد 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);


نIntentplaymusic=newIntent(this,NotificationReceiver.class);playmusic.setAction("PlayMusic");PendingIntentpendingSwitchIntent=PendingIntent.getBroadcast(this,0,playmusic,0);RemoteViewsnotificationView=newRemoteViews(getPackageName(),R.layout.notification);NotificationCompat.Builderbuilder=newNotificationCompat.Builder(this).setSmallIcon(R.mipmap.ic_launcher).setContent(notificationView);notificationView.setPendingIntent(R.id.imgplay,pendingSwitchIntent);Notificationnotification=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 برنامه و تماشای یک نوتیفیکیشن خوشگل موشگل :)

ببخشید کامل کامل توضیح ندادم چون اعتقاد دارم نباید لقمه را درسته گلوی دیگری گذاشت و باید اهسته اهسته جویدن را یادش بدهیم امیدوارم به کارتان امده باشه