You must provide the user with a method to notify them of any messages of priority without overly interfering with existing processes.
The OS provides notifications features, but these can sometimes be overridden. If you're building a notification system, it must correctly interact with the system. A single consistent notification system should be provided to the user across the entire OS. It should not interfere with any of the system processes, and the user should be able to dismiss or close the notification very easily.
When notifications are restricted to a specific subset of a device, such as an app, make sure they follow the same principles and do not conflict with the OS-wide notifications.
Multiple notifications must be able to be displayed in a single view, so that one does not obscure another.
A dedicated notifications strip may be used with a portion of the viewport dedicated to notifications. It may fade in, or slide in when notifications are present, and be completely hidden when there are no notifications.
Notifications can be combined with the Annunciator Row, a very common pattern on basic and legacy devices that uses an envelope icon to indicate new voice mail or SMS messages.
For scroll and select devices a simple popup dialog box may appear over current context whenever a notification appears. Regardless of other notifications situations, incoming calls use a completely unique notification method which automatically launches the phone application full-screen. This is a holdover, and not a permanent state. Some operating systems are already placing a "current call" icon in the Notifications area when the user is in another application. Selecting the Notifications area allows the user to see certain details of the call, and to switch to it quickly if necessary. Using any of the aforementioned options could provide a suitable method of informing the user of the incoming call and of accepting or declining it.
A key attribute of the Notifications pattern is the ability to directly interact with the alert. The user must be able to see each item individually within the notification method, and for select it for viewing, or other suitable actions, including the ability to dismiss it.
The method must allow all notifications to be displayed at once. If the Annunciator Row is used to access notifications, some gesture must be determined to reveal the notifications available - a touch, swipe or drag.
When a notification is acted upon, suspend any curent operations or actions and save all user data. When the action taken on the notification is complete, return the user to the previous process or condition.
Do not display notifications serially; If more than one is received at a time, use a multiple-notification method to display all notifications simultaneously. Do not let notifications prevent access to other systems; individual, as well as all current notifications, must be able to be dismissed.
Most media centric activities, such as video playback, should not be interrupted by notifications; very high priority notifications may still interrupt, but must pause playback or be very non-disruptive so that playback can continue during the notification.
Be sure to follow and understand the OS method of marking notifications as having been read or accepted by the user. Dismissing a notification from view may not mean that the user has read the notification.