RingtonePreference not firing onSharedPreferenceChanged
<p>My Preferences all trigger the onSharedPreferenceChanged event upon a change. It works for all preferences: Checkbox, List, custom, etc. But it won't be called if I select a ringtone from the RingtonePreference. I have this code:</p>

<pre><code>    &lt;CheckBoxPreference android:title="@string/pref_notification"
        android:defaultValue="true" android:summary="@string/pref_notification_summary"
        android:key="prefNotification" /&gt;
    &lt;RingtonePreference android:title="@string/pref_ringtone"
            android:key="prefRingtone"
            android:summary="@string/pref_ringtone_summary" android:ringtoneType="all" /&gt;
    &lt;CheckBoxPreference android:title="@string/pref_vibrate"
        android:defaultValue="true" android:summary="@string/pref_vibrate_summary"
        android:key="prefVibrationOn" /&gt;
    &lt;ListPreference android:title="@string/pref_notification_interval"
        android:summary="@string/pref_notification_interval_summary"
        android:key="prefNotificationInterval" android:defaultValue="60"
        android:entries="@array/prefs_interval" android:entryValues="@array/prefs_interval_values" /&gt;
</code></pre>

<p>And my class:</p>

<pre><code>public class TimePrefsActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    context = this;

    addPreferencesFromResource(R.layout.preferences);           

    Preference dbPref = (Preference) findPreference("prefDeleteDb");    
    dbPref.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        public boolean onPreferenceClick(Preference preference)
        {
            showWipeDbDialog();
            return true;
        }
    });
}

@Override
public void onResume() {
    super.onResume();

    prefs = PreferenceManager.getDefaultSharedPreferences(this);
    prefs.registerOnSharedPreferenceChangeListener(this);

    toggleEnableList();
}

@Override
public void onPause() {
    prefs.unregisterOnSharedPreferenceChangeListener(this);

    super.onPause();
}

@Override
public void onSharedPreferenceChanged(SharedPreferences arg0, String arg1)
{   
    boolean enabled = toggleEnableList();           

    if (enabled)
    {
        OnBootReceiver.setAlarm(TimePrefsActivity.this);                
    }
    else
    {
        OnBootReceiver.cancelAlarm(TimePrefsActivity.this);
    }
}
}
</code></pre>

<p>All the preferences, except the RingtonePreference, reach method onSharedPreferenceChanged. Does anyone have an idea? Thanks.</p>
