title: Why implement onDestroy() if it is not guaranteed to be called?
body: <p>According to the android Activity Lifecycle, the only callback guaranteed to be called (if an activity ever leaves the Running state, which is typically expected) is <code>onPause()</code>.</p>
  
  <p>So, I must assume that there are scenarios in which it makes sense to implement <code>onStop()</code> and <code>onDestroy()</code> although they are not really <em>guaranteed</em> to be called.</p>
  
  <p>I understand that <code>onStop()</code> should be implemented when it's possible for an activity to return to the Running state via the Stopped state (why would it do that instead of returning directly is a different question).</p>
  
  <p>But the need for <code>onDestroy()</code>, when I can place all cleanup/state-saving into <code>onPause()</code>, is unclear to me.</p>
  
  <p>Can you describe a real-app situation (i.e. not analogy to driving a car etc.) in which it would make sense to implement <code>onDestroy()</code>?</p>