1. Какова роль намерения?
2. Какие типы данных может передавать Intent?
3. Есть ли у Intent ограничение на размер передаваемых данных?
4. Как Intent передает большие данные?
основное использование
val intent = Intent(this, MainActivity::class.java).apply {
putExtra("intent_int", 1)
putExtra("intent_str","Android")
}
startActivity(intent)
Роль намерения
● Передача данных между действиями
● Передача данных действий в Сервис
Какие типы данных может передавать Intent
● Базовые типы данных и String, а также формы их массивов. ● Объекты
, реализующие интерфейсы сериализации Serializable
иParcelable
Есть ли у Intent ограничение на размер данных?
Существует ограничение в 1 МБ, и данные будут храниться в Bundle
, Intent
а данные в будут передаваться как объект Parcel
, хранящийся Binder
в буфере транзакций (буфер транзакций Binder) . Binder
Существует ограничение на размер 1 МБ.
При отправке данных через intent
, следует позаботиться о том, чтобы ограничить размер данных несколькими КБ. Отправка слишком большого количества данных приведет к тому, что система выдаст TransactionTooLargeException
исключение.
Как Intent передает большие данные?
- 1.
putBinder
Вы можете обойти ограничение в 1 МБ и хранить данные в общей памяти.
Последний метод эквивалентен обходу Intent
самого себя
- 2. Разделяемая память singleton или статическая переменная
- 3. Сохраняйте данные
- 4.EventBus