title: What happens when I call finish() on an Activity that is already destroyed?
body: <p>I'm realizing while reviewing some of my existing Activity code that some of the Volley async network response handlers call <code>finish()</code> to return to the caller (who typically start my Activity via <code>startActivityForResult</code>). Something like this:</p>
  
  <pre><code>private Response.Listener&lt;MyResponse&gt; mResponseListener = new Response.Listener&lt;MyResponse&gt;(){
      @Override public void onResponse(MyResponse myResponse) {
  
          // I could get here *after* rotation was initiated
  
          // do stuff
  
          finish();
      };
  }
  </code></pre>
  
  <p>After some recent investigation into a bug, I realized my code does not handle the rotation case properly -- I have cases where a network response handler could, in theory, be called in between activity instance A1's destruction and activity instance A2's creation when the device is rotated. What effect does calling <code>finish()</code> after A1's <code>onDestroy</code> is called have? Is the fact that "we're done" lost? Does A2 get created and stick around as though <code>finish</code> were never called?</p>