In the last chapter, we looked at how to simplify interaction by allowing a user to store frequently used data, such as location and dietary preferences. This is only one way to make using an app as enjoyable as possible. Another valuable method is to provide the user with timely notifications.
All mobile devices have provision for receiving notifications; usually these are delivered using the narrow status bar at the top of the screen, and Android is no exception. What makes this process interesting to us as developers, is that these notifications need to be delivered when our app may well not be in use. There is clearly no callback method for handling such an event in an activity, so we will have to look at background components such as services to trigger such events.
In terms of design patterns, there is one pattern that is almost purpose built for managing one to many relationships, the observer pattern. Although perfect for the delivery and reception of...