This is a simple app, which use Google Cloud Messaging system ( Push Notification)
At the startup the application it will register to Google server and it will receive a registration ID.
This registration ID it will be stored and next time not need a registration.
The registration ID should be sent to the application server ( PHP / Java ).
When the server side want to send a message to the device it will send it with this registration ID.
The Android Device need to connect to internet to register and get the registration id
The Android device must be connected to internet to receive push notifications , ofc.