我已经为我的应用注册了一个 onSharedPreferencesChanged 监听器。如果我第一次安装我的应用程序,则会触发 sharedPreferencesChanged 侦听器,但它不应该。
这是我的代码:
onSharedPrefChangedListener = new SharedPreferences.OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(
SharedPreferences sharedPreferences, String key) {
// TODO Auto-generated method stub
if(key.equals(ENABLE_BANNER_AD_PREFERENCE_KEY)){
Toast.makeText(FragmentTabsPager.this,getString(R.string.will_disable_restart), Toast.LENGTH_SHORT).show();
}
}
};
sharedPreferences.registerOnSharedPreferenceChangeListener(onSharedPrefChangedListener);
这就是 Preferences XML :
<CheckBoxPreference android:title="@string/title"
android:summary="@string/summary"
android:icon="@drawable/icon"
android:defaultValue="true"
android:key="bannerKey"> </CheckBoxPreference>
当我在安装后第一次启动应用程序时出现 Toast。如果我再次启动应用程序并导航到 Preferences,preferencesListener 将不会被触发。
有没有人有解决这个问题的想法?