It is a class to notify users of event that happen.
By using NotificationManager class via getSystemService() method
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
public void cancel(int id)
public void cancel(String tag, int id)
public void cancelAll()
public void notify(int id, Notification notification)
public void notify(String tag, int id, Notification notification)
EXAMPLE:
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); notification.flags |= Notification.FLAG_AUTO_CANCEL; notificationManager.notify(0, notification);
A class that represents how a persistent notification is to be presented to the user
-> FLAG_AUTO_CANCEL
-> FLAG_FOREGROUND_SERVICE
-> FLAG_INSIST
-> FLAG_NO_CLEAR
-> FLAG_ONGOING_EVENT
-> FLAG_ONLY_ALERT_ONCE
-> FLAG_SHOW_LIGHTS
Notification.Builder provides a builder interface to create a Notification object.
Notification note = new Notification.Builder(this) .setContentTitle( " New Mail from " + "test@gmail.com") .setContentText("Subject") .setSmallIcon(R.drawable.icon) .setContentIntent(pIntent) .addAction(R.drawable.icon, "Call", pIntent).build();
setAutoCancel(boolean autocancel)
setContentTitle(Charsequence title)
setContentText(Charsequence text)
setSmallIcon(int Icon)
setTicker(Charsequence text)
addAction(int icon, Charsequence title, PendingIntent intent)
setContentIntent(Intent)
Pending intent is an intent which is not called immediately.
PendingIntent pendintent = PendingIntent.getActivity(this, 0, intent, 0);
It allows the foreign application to use your application's permissions
to execute a predefined piece of code.
There are three ways to get an instance of Pending Intent:
getService(Context context, int requestCode, Intent intent, int flags)
getActivity(Context context, int requestCode, Intent intent, int flags)
getBroadcast(Context context, int requestCode, Intent intent, int flags)
The following values are taken as flags in a Pending Intent
FLAG_CANCEL_CURRENT
FLAG_NO_CREATE
FLAG_ONE_SHOT
FLAG_UPDATE_CURRENT
Android allows a maximum of three buttons to a notification
Notification noti = new Notification.Builder(this) .setContentTitle( " New Mail from " + "test@gmail.com") .setContentText("Subject") .setSmallIcon(R.drawable.icon) .setContentIntent(pIntent) .addAction(R.drawable.icon, "Call", pIntent) .addAction(R.drawable.icon, "Message", pIntent) .addAction(R.drawable.icon, "Delete" , pIntent).build();
There are three types of notifications
Notification.BigPictureStyle:
Generates a large format notification including a large image attachment.
Notification notification = new Notification.BigPictureStyle(builder)
.bigPicture(BitmapFactory.decodeResource(getResources(),
R.drawable.sunset)).build();
Notification.BigText
Generates a large-format notification that include a lot of text.
Notification notification = new Notification.BigTextStyle(builder)
.bigText(msgText).build();
Notification.InboxStyle
Generates a large-format notification that include a list of (up to 5) strings.
Notification notification = new Notification.InboxStyle(builder)
.addLine("First message").addLine("Second message")
.addLine("Thrid message").addLine("Fourth Message")
.setSummaryText("+2 more").build();
Developer can put their own custom view to a notification.
Uses BigContentView instead of ContentView of Remoteview in a Notification
RemoteViews bpView = new RemoteViews(this.getPackageName(),
R.layout.notif_boarding_pass);
bpView.setTextViewText(R.id.origin_text_view, origin);
bpView.setTextViewText(R.id.destination_text_view, destination);
Notification notif = new Notification.Builder(this)
.setContentTitle("Boarding pass")
.setContentText("Click for more info")
.setSmallIcon(R.drawable.ic_launcher).build();
notif.flags |= Notification.FLAG_AUTO_CANCEL;
notif.bigContentView = bpView;