Resumo da atualização PreferenceActivity

eu tenho umPreferenceActivity com uma árvore de 2 níveis dePreferenceScreens, algo como:

<PreferenceScreen>
  <PreferenceScreen android:key="A">
     <ListPreference/>
     <EditTextPreference/>
  </PreferenceScreen>
  <PreferenceScreen android:key="B">
     <ListPreference/>
     <EditTextPreference/>
  </PreferenceScreen>
  ...
</PreferenceScreen>

Cada uma das preferências de nível inferior, telas, por exemplo, A e B, está coletando duas partes de dados relacionadas. Quero que o resumo desses itens-pai seja uma combinação dos valores atuais das duas sub-preferências.

Tentei adicionar onPreferenceChangeListener nas preferências da folha e atualizar o resumo a partir daí, mas parece não demorar. As preferências são criadas programaticamente dentro da atividade, por isso estou fazendo algo parecido com isto no onCreate:

   leafListPref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
       @Override
       public boolean onPreferenceChange(Preference preference, Object newValue) {
              // do some work
              prefScreenA.setSummary( /* get new summary based on newValue */);
              return true;
       }
  });

Tentei encontrar um local onde sou informado de que retornei à tela de preferências de nível superior a partir de uma subpágina para que eu possa atualizar nesse momento. No entanto, estou confuso sobre como as telas de nível inferior estão sendo exibidas. Parece que na verdade são caixas de diálogo, não Atividades completas, pois onPause / onResume não é chamado ao se mover entre eles. Existe algum método em algum lugar que estou ausente que será chamado ao retornar à página de nível superior?

Também tentei adicionar um sharedPreferenceChangeListener, conforme descritoaqui, mas isso nunca parece ser chamado.

Alguém tem alguma dica sobre o que estou perdendo aqui, ou alguma abordagem mais fácil que estou perdendo?

questionAnswers(4)

yourAnswerToTheQuestion