1. A multitasking method, comprising: initiating a first user Voice Over Internet Protocol (VOIP) application at a first time; instantiating one or more communication sockets for the first user VOIP application; placing the first user VOIP application into a non-executing state at a second time; receiving a notification associated with the one or more communication sockets at a third time; placing the first user VOIP application into a background state in response to the received notification; and returning the first user VOIP application to the non-executing state after the first user VOIP application has responded to the notification, wherein, the first time precedes the second time and the second time precedes the third time.