次のように、動的に文字列を配置し、アクティビティをリロードして変更をすぐに表示する設定があります。
void restartActivity() {
Intent intent = getIntent();
finish();
startActivity(intent);
}
問題は、特定の値が特定の値を持つときに他の優先値を変更していることです。これにより、SHAREDPREFERENCELISTENER が何度も実行され、上記のメソッドが何度も実行されます。
何らかの理由で、これにより複数の設定画面が上部に作成されます。
いくつかのことをクリアするために、私はこれを持っています:
@Override
protected void onPause() {
super.onPause();
getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
}
@Override
protected void onResume() {
super.onResume();
getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
}
@Override
protected void onDestroy() {
getPreferenceScreen().getSharedPreferences()
.unregisterOnSharedPreferenceChangeListener(this);
super.onDestroy();
}
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
PreferenceScreen screen = this.getPreferenceScreen();
画面を何度も作成しないように機能を制限するにはどうすればよいですか?