1. A computer implemented method for managing computer applications, comprising: receiving from a first computer application a first download request, the first download request being based on user input received by the first computer application; receiving from a second computer application a second download request, the second download request being based on user input received by the second computer application, wherein the first and the second computer applications are independent of each other; prioritizing the first download request and the second download request, according to at least user priority input; downloading data associated with the download requests, according to the prioritization; upon completion of a data download, passing information regarding the downloaded data to whichever application passed the associated request to the application manager; upon completion of a data download, removing the completed download from the prioritization, and for all remaining data download requests: downloading data associated with the remaining data download requests, according to the prioritization.