Я нашел решение. Я использовал setUserVisibleHint . Фрагмент, я написал сохранить и восстановить логи c в setUserVisibleHint . Это работает хорошо. Это вызывается, когда фрагмент показан или скрыт. Также я использовал onViewStateRestored , onSaveInstanceState для уничтожения дел.
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if(isVisibleToUser) {
if (mInputFrom != null) {
if(isToFocus) {
mInputFrom.requestFocus();
mInputFrom.setSelection(fromCursor);
} else {
mInputOut.requestFocus();
mInputOut.setSelection(toCursor);
}
}
} else {
if (mInputFrom != null) {
fromCursor = mInputFrom.getSelectionStart();
toCursor = mInputOut.getSelectionStart();
}
}
}
setUservisibleHint устарел. Поэтому другой вариант заключается в том, что мы можем использовать конструктор FragmentStatePagerAdapter (фм, BEHAVIOR_SET_USER_VISIBLE_HINT ); Если мы вызовем конструктор super, как указано выше, в конструкторе нашего настроенного адаптера, который расширяет FragmentStatePagerAdapter , то onPause , onResume фрагмента будет вызываться для каждого случая скрытия или показано. Первый вариант подходит для моего случая, я думаю. Так что я воспользовался первым вариантом и решил отлично.