Patent ID: 8904206

Claim:
A mobile computing device, comprising: a housing; a processor coupled to the housing, the processor configured to execute a plurality of applications in synchronous communication with one or more application servers, wherein each application corresponds to a synchronization interval and a window of tolerance, respectively, and wherein a synchronization window for each application is defined having a maximum time determined by a previous synchronization time of the application plus the synchronization interval of the application, and a minimum time determined by the maximum time minus the window of tolerance of the application; a wireless transceiver coupled to the processor for synchronizing application data between the mobile computing device and the one or more application servers; and a memory storing a program that, when executed by the processor, causes the mobile computing device to: synchronize a first application in response to determining that a current time corresponds to a maximum time of a synchronization window for the first application; identify a next predicted synchronization time, wherein the next predicted synchronization time corresponds to the current time plus a shortest synchronization interval of the plurality of applications in synchronous communication with the one or more application servers; identify one or more applications besides the first application for which the current time falls within the synchronization window for the application; and for each of the identified one or more applications, determine whether to synchronize the application at the current time, wherein: in response to determining that the next predicted synchronization time falls outside the synchronization window of the identified application, the mobile computing device synchronizes the identified application at the current time, and in response to determining that the next predicted synchronization time falls within the synchronization window of the identified application, the mobile computing device decides not to synchronize the identified application at the current time.