I think, but am not sure, that the general way to do this is to register a service that will listen for key events that are not handled by whatever is in the foreground.
This will probably depend greatly on what all of the different screens do. At the most general level, you will probably have a mix, changing views when you work with data differently, and different activities for different data sets.