title: How does GCM work ? (google cloud messaging for Android)
body: <p>I have an android app which i connect to my server using REST API (django rest framework)</p>
  
  <p><strong>here is a scenario(and maybe my plan):</strong></p>
  
  <ul>
  <li>data is sent back and forth as json</li>
  <li>I have a user model and a task model where users are owners of some task. </li>
  <li>Users typicaly sends a task to another user (with json similar to this: {"owner": "exampleuser", "from":"otheruser", "content":"example" ...} using POST method) 
  -The tasks has a boolean field "completed" and is deleted once the task is completed (using PUT or PATCH method: completed = true,)</li>
  <li>once a new task gets created using POST method, the only way users can see any activities concerning their tasks is through an android activity that uses GET method to get a list of all the tasks  owned by the user, by looking up all objects owned by the user</li>
  </ul>
  
  <p><strong>So my questions are:</strong></p>
  
  <ol>
  <li>Instead of having the user to check the app everytime. How can I use GCM to push notify the user?</li>
  <li>How will it tell which user or device to send the push notification to?</li>
  <li>How does GCM knows when there has been a change to tasks or when a user POST a task?</li>
  </ol>