A method for receiving data, comprising: when an application program on a mobile terminal is switches from a foreground running state to a background running state, sending, by the mobile terminal, a first message to a push server, instructing the push server to send a second message to an application server serving the application program, wherein the second message is used to instruct the application server to send, when there is data that needs to be sent to the mobile terminal, the data to the push server, and receiving, by the mobile terminal, the data sent by the push server, the data carrying state information of the application program, and after the receiving, by the mobile terminal, the data sent by the push server, the method comprises: when the state information of the application program indicates foreground running, switching, by the mobile terminal, the application program from the background running state to the foreground running state, and prompting a mobile terminal user about the data; and when the state information of the application program indicates background running, storing, by the mobile terminal, the data, maintaining the background running state of the application program until the application program is switched to the foreground running state, and prompting the mobile terminal user about the data. when an application program on a mobile terminal is switches from a foreground running state to a background running state, sending, by the mobile terminal, a first message to a push server, instructing the push server to send a second message to an application server serving the application program, wherein the second message is used to instruct the application server to send, when there is data that needs to be sent to the mobile terminal, the data to the push server, and receiving, by the mobile terminal, the data sent by the push server, the data carrying state information of the application program, and after the receiving, by the mobile terminal, the data sent by the push server, the method comprises: when the state information of the application program indicates foreground running, switching, by the mobile terminal, the application program from the background running state to the foreground running state, and prompting a mobile terminal user about the data; and when the state information of the application program indicates background running, storing, by the mobile terminal, the data, maintaining the background running state of the application program until the application program is switched to the foreground running state, and prompting the mobile terminal user about the data. when the state information of the application program indicates foreground running, switching, by the mobile terminal, the application program from the background running state to the foreground running state, and prompting a mobile terminal user about the data; and when the state information of the application program indicates background running, storing, by the mobile terminal, the data, maintaining the background running state of the application program until the application program is switched to the foreground running state, and prompting the mobile terminal user about the data.