Notifications
Sending a simple string message to a user is the primary purpose of the notification system, but there is much more that can be done with it. First and foremost, a notification can be made to perform one or more actions; usually one of these will be to open the relevant application. It is also possible to create expanded notifications that can contain various media and are very useful for situations where there is too much information for a single line message, but we want to save the user the bother of having to open an app.
Since API 21, it has been possible to send heads-up notifications and notifications to the user's lock screen. This function is something that was taken from other mobile platforms and despite its apparent usefulness, it should be used with great caution. It barely requires pointing out that notifications should only contain pertinent and tine-related information. The rule of thumb is only issue a notification if the information cannot wait until...