Деятельность должна происходить из AppCompatActivity
.
Из https://codelabs.developers.google.com/codelabs/kotlin-android-training-app-anatomy/index.html?index=..%2F..android-kotlin-fundamentals#2
AppCompatActivity - это подкласс Activity, который поддерживает все современные Android функции, обеспечивая обратную совместимость со старыми версиями Android. Чтобы сделать ваше приложение доступным как можно большему количеству устройств и пользователей, всегда используйте AppCompatActivity.
В общем, как правило, вам следует взглянуть на пакет, если есть androidx
пакет (ранее это была android поддержка), который имеет тип класса, который вы ищете, используйте этот, поскольку они имеют обратную совместимость.
Другой способ узнать, какое действие использовать, использует android Студийное меню: если вы создаете новое действие (Файл / Новый / Действие / Основное c действие), вы можете увидеть, что сгенерированный файл использует androidx.appcompat.app.AppCompatActivity
.
То же самое относится к фрагментам Фрагмент (Файл / Новый / Фрагмент), а затем вы go в исходный файл вы можете увидеть androidx.fragment.app.Fragment
в импорте. Используйте это.
И о FragmentManager, если вы ищете пакет androidx с FragmentManager, вы получите androidx.fragment.app.FragmentManager
.
Цитирование https://codelabs.developers.google.com/codelabs/kotlin-android-training-images-compat/#5
Совет. В целом, если ваше приложение может использовать класс совместимости из библиотек Jetpack, оно должно использовать один из этих классов, поскольку эти классы обеспечивают поддержку максимально возможного числа функций и устройств.
ссылаясь на классы с пространством имен androidx
.