Я смотрел документацию и нашел это
Этот класс устарел на уровне API P.
Почему фрагменты, устаревшие в android P?
Я смотрел документацию и нашел это
Этот класс устарел на уровне API P.
Почему фрагменты, устаревшие в android P?
Средняя должность Яна (28 февраля 2018 года) дает нам объяснение. Он является разработчиком Android Framework в Google.
Погрузчики в библиотеке поддержки 27.1.0
Для Support Library 27.1.0 я переписал внутренности LoaderManager, класс, питающий API Loaders, и я хотел объяснить причины изменений и что ожидать в будущем.
Погрузчики и фрагменты, история
С самого начала, Погрузчики и Фрагменты были довольно тесно связаны между собой на бедре. Это означало, что много кода в FragmentActivity и Fragment были там, чтобы поддерживать Loaders, несмотря на то, что действительно существуют независимые....Что изменилось в 27.1.0
С 27.1.0 технический долг погрузчиков значительно сократился:......
Примечание. Очевидно, что эти изменения применимы только к загрузчикам библиотеки поддержки. Если вы используете флеш-загрузчики Android, пожалуйста, как можно скорее переключитесь на загрузчики библиотеки поддержки. Исправлены ошибки или улучшения, запланированные для API-интерфейсов Loader.
Кажется, что код в Fragment
и FragmentActivity
был реорганизован, чтобы сделать Loaders дополнительной зависимостью.
Согласно примечанию к выпуску, новая реализация основана на Lifecycle
.
Важные изменения
Основная реализация Loaders была переписана для использования Lifecycle.
В библиотеке поддержки 26.1.0 Fragment
и FragmentActivity
приняли Lifecycle
.
Это специальный выпуск для интеграции библиотеки поддержки с Lifecycles из компонентов архитектуры. Если вы не используете библиотеку Lifecycles, вам не нужно обновлять ее с 26.0.2. Дополнительные сведения см. В примечаниях к выпуску "Компоненты архитектуры".
Важные изменения
- Фрагмент и FragmentActivity (базовый класс для AppCompatActivity) теперь реализуют интерфейс LifecycleOwner из компонентов архитектуры.
Напротив, Fragment и Activity в Android P не реализовали интерфейс LifecycleOwner
.
В сообщении Google+ (упомянутом в ответе ThanosFishermans) Ян сделал комментарий:
вы не можете изменить код рамки после того, как он отправлен - он буквально заморожен во времени. Это означает отсутствие новых функций и, что более важно, исправлений ошибок. Это не хороший опыт разработчиков, особенно когда у нас есть полностью поддерживаемая, обновленная совместимая версия в Библиотеке поддержки.
Я думаю, именно поэтому Android P не использует Lifecycle
. Следовательно, Fragment
устарел в Android P.
Фрагменты библиотеки поддержки здесь, чтобы остаться. Google рекомендует вам использовать версии библиотеки поддержки, чтобы получить согласованное поведение на всех уровнях API, исправленные ошибки и поддержку жизненного цикла и ViewModel.
На случай, если кто-то ищет способ создания фрагментов по имени класса.
Старый способ:
Fragment.instantiate(context, fragmentClass)
Новый способ:
val fm: FragmentManager = ...
fm.fragmentFactory.instantiate(ClassLoader.getSystemClassLoader(), fragmentClass)
Используйте supportFragmentManager вместо fragManager в Android x.