OnActivityResult jest wywoływany, gdy rozpoczyna się działanie, a nie po jego zakończeniu

napisałem FragmentActivity z niektórymi kartami. kiedy wywołam dodatkową aktywność (której używam do ustawiania preferencji użytkownika) za pomocą startActivityForResult (bez różnic, jeśli jest w FragmentActivity lub w ListFragment), metoda onActivityResult jest wywoływana, gdy uruchamiam tę aktywność preferencji, ale nie wtedy, gdy ją kończę, spodziewałbym się tego (znowu nie ma różnic, jeśli jest w FragmentActivity lub ListFragment). po zakończeniu działania preferencji ta metoda nie zostanie w ogóle wywołana.

moim problemem jest to, że chcę odświeżyć moją bieżącą kartę (i ustawić ostatni używany identyfikator karty) po zakończeniu aktywności preferencji i miałem nadzieję, że będę w stanie to zrobić w metodzie onActivityResult.

jest to klasa tworząca aktywność preferencji:

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

jest to metoda przekazująca mnie do aktywności preferencji w tej klasie:

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

jest to metoda wywoływana po wywołaniu powyższej metody, ale nie po zakończeniu wywołanej aktywności

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

to jest aktywność preferencyjna:

public class GlobalPreferencesActivity extends Activity {

a wewnątrz tej klasy widzisz, jak nazywam metodę wykończenia:

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();
        }
    });

questionAnswers(3)

yourAnswerToTheQuestion