1. A non-transitory machine-readable medium having executable instructions to cause one or more processing units to perform a method to modify application sleep states of a plurality of running applications of a device, the method comprising: detecting a plurality of events associated with the plurality of running application; and for each of the plurality of events, evaluating one or more run-time characteristics of one of the running applications that corresponds to that event, determining if that running application is a candidate to have the application sleep state of that running application modified based on the monitored one or more run-time characteristics of that running application and that event and, if that running application is a candidate to have the application sleep state of that running application modified, determining a corresponding application sleep state level for that event, wherein the corresponding application sleep state level is one of a plurality of application sleep state levels for that running application and each of the plurality of application sleep state levels is a different reduced state in which that running application has a different reduced access to a set of resources of the device, and modifying the application sleep state of that running application to the corresponding application sleep state level.