content observer only invoked once then never again
<p>I am trying to observe sms messages with the following content observer.  Unfortunately, it only picks up some occurrences.  At first I thought it was a lifecycle issue, so I placed methods in the stop, start, resume, etc methods to make sure I always have an observer observing while my activity is in the forefront.  Anyone have any ideas as to why it only picks up the first new message? After catching the first one, it doesn't pick up until I re-install application.</p>

<pre><code>private void registerContentObservers() {
    ContentResolver cr = getContentResolver();

    mSmsObserver = new ContentObserver(mHandler) {

        @Override
        public void onChange(boolean selfChange) {
            Log.v(TAG, "onChange method");
        }

        @Override
        public boolean deliverSelfNotifications() {
            return true;
        }
    };
    // cursor.registerContentObserver(mSmsObserver);
    cr.registerContentObserver(Uri.parse("content://sms/inbox"), false, mSmsObserver);

}

private void unregisterContentObservers() {
    ContentResolver cr = getContentResolver();
    if (mSmsObserver != null) {
        // just paranoia
        cr.unregisterContentObserver(mSmsObserver);
        mSmsObserver = null;
    }
}

@Override
protected void onDestroy() {
    Log.v(TAG, "onDestroy()");
    unregisterContentObservers();
    super.onDestroy();
}

@Override
protected void onStart() {
    Log.v(TAG, "onStart()");
    registerContentObservers();
    super.onStart();
}

@Override
protected void onStop() {
    Log.v(TAG, "onStop()");
    unregisterContentObservers();
    super.onStop();
}

@Override
protected void onResume() {
    Log.v(TAG, "onResume()");
    registerContentObservers();
    super.onResume();
}

@Override
protected void onPause() {
    Log.v(TAG, "onPause()");
    super.onPause();
}
</code></pre>
