我有一个非常奇怪的。我有 2 个应用程序,一个免费应用程序和一个付费应用程序,它们都使用基本相同的代码,除了一些在免费应用程序中显示广告的代码。
出于某种原因, registerOnSharedPreferenceChangeListener() 不在免费版本中运行。更奇怪的是……如果我在该行代码处放置一个断点,然后运行调试器,它就会正常注册。如果没有断点,它永远不会注册。知道什么会导致这种情况吗?也许项目设置有所不同?我整天都在努力解决这个问题!
代码:
SharedPreferences.OnSharedPreferenceChangeListener prefsListener = new SharedPreferences.OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
if(key.equals(AUTORESPONSEGLOBAL))
{
ARCheckBox.setChecked(settings.getBoolean(AUTORESPONSEGLOBAL, false));
if(ARCheckBox.isChecked())
{
//green 0xaarrggbb a=alpha
AR_label.setTextColor(0xff00ff00);
}
else
{
//red
AR_label.setTextColor(0xffff0000);
}
}
if(key.equals(CLOCK24))
{
updateTime();
}
}
};
settings.registerOnSharedPreferenceChangeListener(prefsListener);