1. A method implemented by a computing device for managing a resource thereof, comprising: determining a first amount of the resource that is used by a first instance of an application while being executed by the computing device, the determining including determining an amount of the resource that is used by a foreground process associated with the first instance of the application and one or more background tasks associated with the first instance of the application; calculating a first predicted resource usage amount for the application based at least on the first amount by obtaining an average resource usage amount for the application based on the first amount and one or more previously-determined amounts respectively associated with one or more previously-executed instances of the application; storing the first predicted resource usage amount in a data store; determining a second amount of the resource to be allocated to a second instance of the application to be executed by the computing device based at least on the first predicted resource usage amount stored in the data store; and performing one of: in response to determining that an amount of the resource used by the second instance of the application while being executed by the computing device exceeds the second amount, terminating one or more processes that are concurrently executing on the computing device, in response to determining that the second amount of the resource is not currently available, preventing execution of the second instance of the application, or in response to determining that the second amount of the resource is not currently available, terminating one or more processes that are currently executing on the computing device.