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
risposta
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 :)
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();
}
}
Tenta di usare 'onAttach()' metodo, non 'onResume()' – Procurares
Già provato .... In realtà OnAttch() è appena chiamato una volta quando noi attribuiamo da attività di frammento. – hemu
Come stai passando tra i frammenti? Si prega di aggiungere qualche codice di esempio. – antonyt