Как мне узнать, был ли фрагмент повторно нажат / извлечен из стека?

#android #fragment

#Android #фрагмент

Вопрос:

У меня есть ДЕЙСТВИЕ, в котором размещены два фрагмента A и B. По умолчанию размещен фрагмент A. Фрагмент B запускается из фрагмента A. Когда пользователь нажимает назад во фрагменте B и предполагает, что некоторые данные были изменены, сначала я уничтожаю фрагмент B, используя следующий код в B:

 if (getActivity() != null) {
    FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
    if (fragmentManager != null) {
        getActivity().getSupportFragmentManager().popBackStackImmediate();
    }
}
  

Мой вопрос:

Откуда я знаю, что фрагмент B был «убит» из фрагмента A или даже из ACTIVITY? Я хочу обновить данные в A, когда B уничтожен.

Что-то вроде

 if (B.isKilled()) {
    refreshDataInA();
}
  

Я хочу иметь возможность выполнять как из ACTIVITY, так и из фрагмента B.

Спасибо!

Комментарии:

1. вы можете обновить данные в onCreateView обратном вызове фрагмента A. Или использовать интерфейсы для обмена фрагментами активности

Ответ №1:

В вашем фрагменте метод onResume добавляет

 @Override
    public void onResume() {
        super.onResume();
        if(B.isDetached()){
            refreshData();
        }
    }
  

попробуйте.