8

Ich habe 4 (sagen wir 1,2,3 & 4) Fragmente. Und zu einem Zeitpunkt wird jeder von ihnen für den Benutzer sichtbar sein. Im zweiten Fragment möchte ich etwas tun, wenn der Benutzer darauf kommt. Jetzt, als Benutzer zum 3. Fragment & auf den Zurückknopf ging, möchte ich etwas Code laufen lassen. Mein Problem ist onResume wird nicht aufgerufen, wenn der Benutzer die Schaltfläche zurück & kommt zum zweiten Fragment.Fragment onResume nicht genannt

+0

Try 'onAttach()' Methode zu verwenden, nicht 'onResume()' – Procurares

+0

Schon probiert .... Eigentlich OnAttch() wird nur ein einziges Mal aufgerufen, wenn wir es aus Fragmente Aktivität befestigen. – hemu

+0

Wie wechselst du zwischen den Fragmenten? Bitte fügen Sie einen Beispielcode hinzu. – antonyt

Antwort

4

ich vor kurzem in das gleiche Problem gestoßen, ich weiß, dass es zu spät ist, aber nur für den Fall jemand anders dafür sucht, hier ist meine Antwort:

Dank @fasteque für meine Suche Eingrenzung.

Die Fragmente onResume() oder onPause() werden nur aufgerufen, wenn die Aktivitäten onResume() oder onPause() aufgerufen wird. Sie sind eng mit der Aktivität verbunden.

Aber wenn Sie noch in Ihrer Tätigkeit auf die Veränderungen hören mögen wie das Fragment oben ist, und Ereignisse auslösen entsprechend, könnten Sie wollen einen Blick auf FragmentManager.OnBackStackChangedListener

this helps :)

1

I Habe das selbe Problem. Wenn Sie vom 3. Fragment zum 2. Fragment wechseln möchten (mit der Zurück-Taste oder auf eine andere Art), können Sie das zweite Fragment in der onPause des 3. Fragments aufrufen.

@Override 
public void onPause() { 
    super.onPause(); 

    Fragment2 fragment2= (Fragment2) getActivity().getSupportFragmentManager().findFragmentById(R.id.fragment2); 
    if (fragment2!= null) { 
     //you can call any function from fragment2 
     fragment2.SomeFunctions(); 
    } 
} 
Verwandte Themen