Android – намерение

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

материал

Android использует Intent для передачи больших данных

Supongo que te gusta

Origin blog.csdn.net/Android_yh/article/details/130516423
Recomendado
Clasificación