Любые ли данные можно положить в putExtra

Ответ

В putExtra можно передать примитивные типы (int, float, boolean), строки (String), массивы, Parcelable и Serializable объекты. Однако есть ограничения:

  1. Размер данных – Android ограничивает размер Intent (обычно ~1MB). Большие данные могут вызвать TransactionTooLargeException.
  2. Производительность – Передача сложных объектов (особенно через Serializable) может быть медленной.
  3. Безопасность – Не передавайте конфиденциальные данные, так как 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 с умом, а то потом будешь сидеть и думать: «Э, бошка, думай, почему всё падает?».