Ответ
Intent — это механизм для взаимодействия между компонентами приложения или между разными приложениями. Основные нюансы:
-
Явные и неявные Intent
- Явные указывают конкретный компонент (
new Intent(this, ActivityB.class)). - Неявные описывают действие (
ACTION_VIEW) и данные (Uri.parse("http://...")), система сама выбирает подходящий компонент.
- Явные указывают конкретный компонент (
-
FLAG_ACTIVITY флаги_*
Например,FLAG_ACTIVITY_NEW_TASKзапускает Activity в новом таске, если приложение не в foreground. -
Ограничения с Android 10+
Запрет на запуск Activity из фона (исключение: PendingIntent). -
Данные в Intent
Можно передавать примитивы, строки, Parcelable, Serializable. Большие данные (>1MB) лучше передавать через ViewModel или статичные поля.
Пример:
val intent = Intent(Intent.ACTION_VIEW, Uri.parse("https://google.com"))
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
startActivity(intent)