1. A computer implemented method for managing computer applications, the method comprising performing, on a computer, the steps of: receiving from a first computer application executing on the computer 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 executing on the computer 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, and wherein the first and second applications can be independently shut down and independently run; prioritizing the first download request and the second download request; downloading data associated with the download requests from a network, according to the prioritization; upon completion of a data download from the network, determining if whichever application that requested the download is running, and if running passing information regarding the downloaded data to said whichever application for application-specific post download processing, and if the said whichever application is not running, performing said application-specific post download processing; upon completion of a data download from the network, 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.