title: How long do bundles get persisted by SyncManager?
body: <p>I have an application with a <code>SyncAdapter</code>. Additionally to the normal synchronization I trigger a <code>USER_READ</code> event with which I just pass a <code>Bundle</code> to the adapter without persisting it:</p>
  
  <pre><code>Bundle settingsBundle = new Bundle();
  settingsBundle.putString(SyncAdapter.USER_READ, uid);
  ContentResolver.requestSync(account, authority, settingsBundle);
  </code></pre>
  
  <p>This will correctly call my synchronization routine sometime in the future. Every <code>uid</code> set in the <code>Bundle</code> will trigger its own run and everything gets synced as expected.</p>
  
  <p>If now the connection is bad, or the request times out, then I set a soft error:</p>
  
  <pre><code>syncResult.stats.numIoExceptions += 1;
  </code></pre>
  
  <p>which will cause the request to be repeated later. This also works just fine.</p>
  
  <hr>
  
  <p><em>How long do these SyncRequests / Bundles get persisted?</em></p>
  
  <p>The documentation states, that encountering a soft error will cause an exponentional backoff and that the sync will be run some time later.</p>
  
  <ul>
  <li>Will it be canceled at some point? After multiple soft errors?</li>
  <li>Will it be enqueued again after a reboot of the device?</li>
  </ul>
  
  <p>Given the connection is bad and the synchronization fails multiple times with soft errors: I would like to know if just enqueuing a sync request is enough, or if I have to provide some sort of persistence myself to ensure requests being sent at some point.</p>