title: Android getContentResolver insert not returning full URI
body: <p>I have an activity that is being swapped out when I raise an intent for another activity.  onPause calls saveState() to save work so far:</p>
  
  <pre><code>private void saveState() {
      ...
      ...
      if (myUri == null) {
          // Inserting a new record
  *** myUri = getContentResolver().insert(ContentProvider.CONTENT_URI, values);
      } else {
          // Update an existing record
          getContentResolver().update(myUri, values, null, null);
      }
  }
  </code></pre>
  
  <p>Before calling getContentResolver(), ContentProvider.CONTENT_URI = 'content://nz.co.bkd.extraTime.contentprovider/times'.</p>
  
  <p>After the call, myUri = 'times/#' where #=row ID. My question is; where is the 'content:...' prefix to the returned uri?</p>
  
  <p>During the call, ContentResolver.java is called and returns CreatedRow uri </p>
  
  <pre><code>ContentResolver.java
  ....
  ....
  public final Uri insert(Uri url, ContentValues values)
  {
      IContentProvider provider = acquireProvider(url);
      if (provider == null) {
          throw new IllegalArgumentException("Unknown URL " + url);
      }
      try {
          long startTime = SystemClock.uptimeMillis();
  ***     Uri createdRow = provider.insert(url, values);
          long durationMillis = SystemClock.uptimeMillis() - startTime;
          maybeLogUpdateToEventLog(durationMillis, url, "insert", null /* where */);
          return createdRow;
      } catch (RemoteException e) {
          // Arbitrary and not worth documenting, as Activity
          // Manager will kill this process shortly anyway.
          return null;
      } finally {
          releaseProvider(provider);
      }
  }
  </code></pre>
  
  <p>At this point, createdRow = 'times/#'.</p>
  
  <p>The record does actually get saved in the Sqlite database.</p>
  
  <p>Do I have to add the uri prefix in my code or should the full uri be returned?</p>