8

Sto avendo 4 (diciamo 1,2,3 & 4) frammenti. E alla volta ognuno di essi sarà visibile all'utente. Nel 2 ° frammento voglio fare qualcosa quando l'utente ci sta arrivando. Ora, quando l'Utente naviga verso il terzo frammento, & colpisce il pulsante Indietro, voglio eseguire un codice. Il mio problema è onResume non viene chiamato quando l'utente preme il pulsante Indietro & venire al 2 ° frammento.Frammento onResume non chiamato

+0

Tenta di usare 'onAttach()' metodo, non 'onResume()' – Procurares

+0

Già provato .... In realtà OnAttch() è appena chiamato una volta quando noi attribuiamo da attività di frammento. – hemu

+0

Come stai passando tra i frammenti? Si prega di aggiungere qualche codice di esempio. – antonyt

risposta

4

di recente mi sono imbattuto nello stesso problema, mi sa che è troppo tardi, ma solo nel caso in cui qualcun altro è alla ricerca di questo, ecco la mia risposta:

Grazie @fasteque per restringere la mia ricerca.

I frammenti onResume() o onPause() saranno chiamati solo quando le attività onResume() o onPause() si chiama. Sono strettamente accoppiati all'attività.

Ma se si vuole ancora ascoltare i cambiamenti nella vostra attività come il quale frammento è in cima, e attivare eventi di conseguenza, si potrebbe desiderare di avere uno sguardo a FragmentManager.OnBackStackChangedListener

Spero che questo aiuti :)

1

I ho avuto lo stesso problema Se si desidera passare dal 3 ° frammento al 2 ° frammento (con il pulsante Indietro o in un altro modo) è possibile chiamare il 2 ° frammento nella onPause del 3 ° frammento.

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