onSharedPreferenceChanged()多次调用

时间:2014-06-23 13:19:11

标签: android sharedpreferences

就像我在标题中所说的,方法onSharedPreferenceChanged()被称为倍数倍,这在我的案例中是个问题。在这种方法中,我加密密码,“加密”也被称为倍数,因此我的应用程序崩溃了,我有一个2Mo的sharedPreferences文件。

这是我的代码:

public class ParametreActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener {
    @SuppressWarnings("deprecation")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.parametres);

        PreferenceManager
                .getDefaultSharedPreferences(this)
                        .registerOnSharedPreferenceChangeListener(this);
    }

    @Override
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {

    String mdp;
    if(key.equals("mdp")) {
            mdp = sharedPreferences.getString(key, null);
            if(mdp != null) {
                try {
                    sharedPreferences.edit().putString(key, SimpleCrypto.encrypt(mdp)).apply();
                } catch (Exception e) {}
            }
    }
    }
}

1 个答案:

答案 0 :(得分:0)

我只是使用布尔值,不要再次调用提交