I am having 4 (let's say 1,2,3 & 4) fragments. And at a time any one of them will be visible to User. In 2nd fragment I want to do something when user is coming on it.
Now when User navigated to 3rd fragment & hits the back button, I want to run a some code. My problem is onResume
is not getting called when user hits the back button & come to 2nd fragment.
I recently bumped into the same problem, I know that its too late, but just in case some one else is looking for this, here's my answer:
Thanks @fasteque for narrowing down my search.
The fragments onResume()
or onPause()
will be called only when the Activities onResume()
or onPause()
is called. They are tightly coupled to the Activity.
But if you still want listen to the changes in your activity like which fragment is on top, and trigger events accordingly, you might wanna have a look at FragmentManager.OnBackStackChangedListener
Hope this helps :)
I've had the same problem. If you want to switch from 3rd fragment to 2nd fragment (with the back button or another way) you can call 2nd fragment in the onPause of 3rd fragment.
@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();
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With