Ответ
В putExtra можно передать примитивные типы (int, float, boolean), строки (String), массивы, Parcelable и Serializable объекты. Однако есть ограничения:
- Размер данных – Android ограничивает размер
Intent(обычно ~1MB). Большие данные могут вызватьTransactionTooLargeException. - Производительность – Передача сложных объектов (особенно через
Serializable) может быть медленной. - Безопасность – Не передавайте конфиденциальные данные, так как
Intentможет быть перехвачен.
Пример:
// Parcelable объект
intent.putExtra("user", user as Parcelable)
// Примитивы
intent.putExtra("id", 123)
intent.putExtra("name", "John") Ответ 18+ 🔞
Ну, смотри, тут про передачу данных в Intent через putExtra — вроде просто, но подводных камней дохуя, как в болоте.
Во-первых, можно пихать почти всё: примитивы (int, float, boolean), строки, массивы, а ещё Parcelable и Serializable объекты. Но не думай, что это халява — есть три главных засады, ёпта.
Первая — размер данных. Android, сука, ограничивает размер Intent где-то около 1 МБ. Если переборщишь — получишь TransactionTooLargeException, и всё накрывается медным тазом.
Вторая — производительность. Если ты передаёшь сложные объекты через Serializable — это пиздец как медленно, будто черепаха в смоле ползёт. Parcelable быстрее, но его ещё реализовать надо.
Третья — безопасность. Не вздумай передавать пароли, токены или другую конфиденциальную хуйню через Intent — его могут перехватить, и тогда будет вам хиросима.
Вот пример кода, чтобы было понятнее:
// Parcelable объект
intent.putExtra("user", user as Parcelable)
// Примитивы
intent.putExtra("id", 123)
intent.putExtra("name", "John")
Короче, используй putExtra с умом, а то потом будешь сидеть и думать: «Э, бошка, думай, почему всё падает?».