title: How to use "goAsync" for broadcastReceiver?
body: <h2>Background</h2>
  
  <p>Starting with Honeycomb (API 11) , Android has a feature to allow the broadcastReceiver run in an async way, providing it about 10 seconds before it assumes it can kill its process, using a method called "<a href="https://developer.android.com/reference/android/content/BroadcastReceiver.html#goAsync%28%29" rel="noreferrer"><strong>goAsync</strong></a>" :</p>
  
  <blockquote>
    <p>This can be called by an application in onReceive(Context, Intent) to
    allow it to keep the broadcast active after returning from that
    function. This does not change the expectation of being relatively
    responsive to the broadcast (finishing it within 10s), but does allow
    the implementation to move work related to it over to another thread
    to avoid glitching the main UI thread due to disk IO.</p>
  </blockquote>
  
  <h2>The problem</h2>
  
  <p>I've searched in many places and didn't find any sample or tutorial of how to use it.</p>
  
  <p>Not only that, but the method returns a PendingIntent instance which I'm not sure what to do with it:</p>
  
  <blockquote>
    <p>Returns a BroadcastReceiver.PendingResult representing the result of
    the active broadcast. The BroadcastRecord itself is no longer active;
    all data and other interaction must go through
    BroadcastReceiver.PendingResult APIs. The PendingResult.finish()
    method must be called once processing of the broadcast is done.</p>
  </blockquote>
  
  <h2>The question</h2>
  
  <p>How do you use this method? </p>
  
  <p>What is the PendingIntent that is returned by it, and what should I do with it?</p>