Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在指定函数中调用侦听器_Android_Sharedpreferences - Fatal编程技术网

Android 在指定函数中调用侦听器

Android 在指定函数中调用侦听器,android,sharedpreferences,Android,Sharedpreferences,我有一个preferenceListener,我在其中聆听偏好的变化 preferenceListener = new OnSharedPreferenceChangeListener() { @Override public void onSharedPreferenceChanged( SharedPreferences sharedPreferences, String key) {

我有一个preferenceListener,我在其中聆听偏好的变化

preferenceListener = new OnSharedPreferenceChangeListener() {
            @Override
            public void onSharedPreferenceChanged(
                    SharedPreferences sharedPreferences, String key) {
                if (key.equals(SettingsActivity.CAR)
                         { }

                } 

             }
        };

但我只想在onResume中调用此侦听器。意味着如果活动进入onResume并且我的首选项更改,那么只有我想调用这个侦听器。如何实现这一点?

如果您希望您的侦听器仅用于onResume,则可以使用unregisterOnSharedPreferenceChangeListener添加和删除您的侦听器以禁用侦听器

因此,您可以在onresume中注册它,并在onCreate中取消注册/禁用监听

样本:


您是否尝试重写onResume方法并将侦听器保留在那里?@Nabin但如果我更改首选项,侦听器将随时响应。如果我在onCreate中定义此侦听器,它会在每次更改首选项时侦听,而不仅仅是在我的活动进入onCreate时侦听。您在哪里使用了此post?我在片段的onCreateView中使用了@Rod_Algonquin。我想在相同片段的onResume中使用它。@Diffy post you onCreateView
preferences.unregisterOnSharedPreferenceChangeListener(preferenceListener); //in onresume
preferences.registerOnSharedPreferenceChangeListener(preferenceListener); //in oncreate