Intent resolution неявных интентов.
Intent Resolution — механизм поиска нужного компонента для вызова по неявному интенту. Когда вы используете явный интент, вы четко прописываете какой именно компонент запустить, используя же неявный интент, вы не знаете какой именно компонент будет запущен, вы знаете только что он должен уметь делать.
Когда вы используете неявный интент, система Android сама находит соответствующий компонент для запуска. Делает она это, сравнивая содержимое интента с интент- фильтрами, объявленными в манифест-файлах других приложений на устройстве. Если интент соответствует интент-фильтру, система запускает этот компонент и доставляет ему данный интент. Если несколько интент-фильтров подходят, система отображает диалоговое окно, чтобы пользователь мог выбрать, какое приложение использовать.
Вот так это будет происходить для активити
- Activity A создает интент с описанием (action, category, data type и URI) и передает его в метод startActivity()
- Система проверяет все приложения, чтобы найти интент-фильтр, который будет подходить интенту, созданному в Activity A.
- Когда совпадение найдено, система стартует подходящую активити (Activity B), вызывая ее метод onCreate() и передавая ей интент, созданный в Activity A
Стоит понимать, что таким образом могут быть не только активити, а любые компоненты Андроид приложения (например сервисы)
Бесплатные Telegram-боты для обучения
Практика с проверкой кода и помощью ИИ-ментора
AndroidSprint AI Mentor
Проверяет Pull Request'ы в GitHub, проводит тестовые собеседования с голосом и таймером, помогает разбираться с кодом 24/7
Попробовать ИИ-ментора →KotlinSprint Bot
22 урока Kotlin, 220 тестов, 120 практических задач с код-ревью
Начать обучение Kotlin →