onResume() method won\'t get called when we switch between fragments more than one time. So, is there any better way to handle resume operation?
You can simply simulate onResume() for each fragment by using an interface!!!
1- create an interface named FragmentLifecycle , the code is as follows:
public interface FragmentLifecycle {
public void onResumeFragment();
}
2- Let each Fragment implement the interface:
public class FragmentOne extends Fragment implements FragmentLifecycle
3- Implement interface methods in each fragment:
@Override
public void onResumeFragment() {
Log.i(TAG, "onResumeFragment()");
Toast.makeText(getActivity(), "onResumeFragment():" + TAG,Toast.LENGTH_SHORT).show();
}
4- Call interface methods on ViewPager page change:
viewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
FragmentLifecycle fragmentToShow = (FragmentLifecycle)adapter.getItem(position);
fragmentToShow.onResumeFragment();
}
});
Enjoy!