onActivityResult se llama cuando se inicia la actividad, no cuando se termina

Escribí un FragmentActivity con algunas pestañas. cuando llamo a una actividad adicional (que uso para configurar las preferencias de usuario) con startActivityForResult (no hay diferencias si está en FragmentActivity o en ListFragment) se llama al método onActivityResult cuando comienzo esta actividad de preferencia, pero no cuando lo termino, como Lo esperaría (de nuevo sin diferencias si está en FragmentActivity o en ListFragment). después de que termine la actividad de preferencia, este método no se llama en absoluto.

mi problema es que quiero actualizar mi pestaña actual (y configurar la última identificación de la pestaña utilizada) después de que terminé la actividad de preferencias y esperaba poder hacer esto en el método onActivityResult

esta es la clase que crea la actividad de preferencia:

public abstract class ListFragmentBase<I> extends ListFragment implements
LoaderCallbacks<List<I>> {

este es el método que me reenvía a la actividad de preferencia dentro de esta clase:

protected void forwardToPreferences(int currentTab){            
        Intent intent = new Intent(getActivity(), GlobalPreferencesActivity.class);
        getActivity().startActivityForResult(intent, 10);
}

este es el método al que se llama después de llamar al método anterior pero no después de que terminé la actividad llamada

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
}

esta es la actividad de preferencia

public class GlobalPreferencesActivity extends Activity {

y dentro de esa clase ves cómo llamo al método de acabado:

TextView confirmSettings = (TextView) view.findViewById(R.id.confirm_settings);
confirmSettings.setTextSize(PreferenceHelper.getSizeHeader(getApplicationContext()));
    confirmSettings.findViewById(R.id.confirm_settings).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {    
            if(BaseFragmentActivity.lastActivity != null){
                BaseFragmentActivity.lastActivity.onRefreshData();
        }
            ComponentName callingActivity = getCallingActivity();
            GlobalPreferencesActivity.this.finish();
        }
    });

Respuestas a la pregunta(3)

Su respuesta a la pregunta