onActivityResult wird aufgerufen, wenn die Aktivität beginnt und nicht, wenn sie beendet ist

Ich habe ein FragmentActivity mit einigen Registerkarten geschrieben. Wenn ich eine zusätzliche Aktivität mit startActivityForResult aufrufe (die ich zum Festlegen von Benutzereinstellungen verwende) (keine Unterschiede, wenn es sich um FragmentActivity oder ListFragment handelt), wird die Methode onActivityResult aufgerufen, wenn ich diese Voreinstellungsaktivität starte, aber nicht, wenn ich sie beende, als Ich würde es erwarten (wieder keine Unterschiede, wenn es in FragmentActivity oder in ListFragment ist). Nachdem ich die Preference-Aktivität beendet habe, wird diese Methode überhaupt nicht aufgerufen.

Mein Problem ist, dass ich meinen aktuellen Tab aktualisieren möchte (und die zuletzt verwendete Tab-ID festlegen möchte), nachdem ich die Voreinstellungsaktivität beendet habe und ich gehofft habe, dies in der onActivityResult-Methode tun zu können.

Dies ist die Klasse, die die Präferenzaktivität erstellt:

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

Dies ist die Methode, die mich zu der Präferenzaktivität innerhalb dieser Klasse weiterleitet:

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

Dies ist die Methode, die aufgerufen wird, nachdem die obige Methode aufgerufen wurde, aber nicht, nachdem ich die aufgerufene Aktivität beendet habe

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

Dies ist die bevorzugte Aktivität:

public class GlobalPreferencesActivity extends Activity {

und in dieser klasse siehst du wie ich die finish methode aufrufe:

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

Antworten auf die Frage(3)

Ihre Antwort auf die Frage