Метод putExtra в Intent позволяет передавать данные различных типов, но не любые. Он поддерживает примитивные типы (int, boolean, float и т.д.), строки, массивы, а также объекты, реализующие интерфейсы Parcelable или Serializable. Если попытаться передать объект, который не реализует эти интерфейсы, приложение вызовет ошибку во время выполнения. Поэтому для передачи сложных объектов их нужно либо сериализовать, либо сделать Parcelable.
Можно ли передавать любые типы данных с помощью метода putExtra в Intent?
Метод putExtra в Intent позволяет передавать данные различных типов, но не любые.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Метод putExtra в Intent позволяет передавать данные различных типов, но не любые. Он поддерживает примитивные типы (int, boolean, float и т.д.), строки, массивы, а также объекты, реализующие интерфейсы Parcelable или Serializable. Если попытаться передать объект, который не реализует эти интерфейсы, приложение вызовет ошибку во время выполнения. Поэтому для передачи сложных объектов их нужно либо сериализовать, либо сделать Parcelable.
Пример передачи строки и Parcelable объекта:
Intent intent = new Intent(this, NextActivity.class);
intent.putExtra("username", "user123");
intent.putExtra("userData", userParcelableObject); // userParcelableObject реализует Parcelable
startActivity(intent);