Отслеживание жизненного цикла фрагмента, например Application.ActivityLifecycleCallbacks

Всем известно, что в Android мы можем отслеживать Activity через Application.ActivityLifecycleCallbacks, чтобы получать сообщения о пожарах из системы, когда Activity создается, останавливается, уничтожается и т. д.

Я нашел только один вопрос в stackoverflow, связанный с этой темой.
жизненный цикл, например Application.ActivityLifecycleCallbacks

К сожалению, предоставленное решение работает только на Android post 25.2.0.
Я ищу решение для pre 25.2.0. Может быть, это возможно с помощью некоторых обходных путей, может быть, отражения?


person Sergey Shustikov    schedule 11.04.2017    source источник
comment
Вы можете отслеживать изменения в библиотеке поддержки здесь. Какая-то конкретная причина не обновлять?   -  person Eugen Pechanec    schedule 11.04.2017


Ответы (1)


Я ищу душу для pre 25.2.0

FragmentManager.FragmentLifecycleCallbacks был доступен с 25.1.0. Единственное изменение, внесенное в 25.2.0 относительно этого API, заключается в том, что он стал static, а до этого был просто общедоступным внутренним классом. Это означает, что для использования вы должны получить к нему доступ через его охватывающий экземпляр, который в данном случае FragmentManager:

final FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.registerFragmentLifecycleCallbacks(fragmentManager.new FragmentLifecycleCallbacks() {
            @Override
            public void onFragmentPreAttached(FragmentManager fm, Fragment f, Context context) {
                super.onFragmentPreAttached(fm, f, context);
            }
            ...
            // all other callbacks
        }, true);

Как упоминалось в комментарии Евгения Печанека, фрагменты фреймворка по умолчанию (т.е. android.app.Fragment, не из пакетов поддержки) получит эти изменения в Android-O выпуске .

person azizbekian    schedule 11.04.2017
comment
Краткое примечание для полноты: та же функция для фрагментов платформы будет доступен в Android O. - person Eugen Pechanec; 11.04.2017