私は本当に奇妙なものを持っています。無料アプリと有料アプリの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);