A non-transitory computer-readable medium storing instructions executable by one or more processors to perform operations comprising: maintaining a persistent connection of a mobile device to a push notification service, wherein the mobile device enters a sleep mode; while the mobile device is in the sleep mode, receiving, at a location information server, a first location-information-request for a location of the mobile device; in response to receiving the first location-information-request, waking up the mobile device from the sleep mode through a location-update-request transmitted to the mobile device through the push notification service; obtaining a location of the mobile device, the location determined by implementing a self-location function, wherein the mobile device returns to the sleep mode after the location is obtained; sending, by the location information server, the location of the mobile device in response to receiving the first location-information-request; storing, by the location information server, the obtained location; wherein the instructions are further executable to perform operations comprising the location information server: receiving a second location-information-request after receiving the first location-information-request; determining that a time interval between obtaining the location in response to the first location-information-request and receiving the second location-information-request is less than a threshold time interval; in response to determining that the time interval is less than the threshold time interval, sending the stored location in response to receiving the second location-information-request. maintaining a persistent connection of a mobile device to a push notification service, wherein the mobile device enters a sleep mode; while the mobile device is in the sleep mode, receiving, at a location information server, a first location-information-request for a location of the mobile device; in response to receiving the first location-information-request, waking up the mobile device from the sleep mode through a location-update-request transmitted to the mobile device through the push notification service; obtaining a location of the mobile device, the location determined by implementing a self-location function, wherein the mobile device returns to the sleep mode after the location is obtained; sending, by the location information server, the location of the mobile device in response to receiving the first location-information-request; storing, by the location information server, the obtained location; wherein the instructions are further executable to perform operations comprising the location information server: receiving a second location-information-request after receiving the first location-information-request; determining that a time interval between obtaining the location in response to the first location-information-request and receiving the second location-information-request is less than a threshold time interval; in response to determining that the time interval is less than the threshold time interval, sending the stored location in response to receiving the second location-information-request. receiving a second location-information-request after receiving the first location-information-request; determining that a time interval between obtaining the location in response to the first location-information-request and receiving the second location-information-request is less than a threshold time interval; in response to determining that the time interval is less than the threshold time interval, sending the stored location in response to receiving the second location-information-request.