FAILED BINDER TRANSACTION

406
11 января 2017, 01:06

Передаю объект своего класса (реализую Parcelable) из одного активити в другое через Intent. Из второго активити в фрагмент расположенный на этой активити (через Bundle). В логах:

E/JavaBinder: !!! FAILED BINDER TRANSACTION !!!  (parcel size = 2557032)

Объек не большой, 4 переменные типа String. Какая может быть альтернатива передачи данных между активити ?

UPDATE: В первой активити приходится хранить порядка 1000 объектов своего класса. При повороте экрана все объекты сохраняю след. образом:

 @Override
 protected void onSaveInstanceState(Bundle outState) {
     super.onSaveInstanceState(outState);
     outState.putParcelableArrayList(KEY_RESULT_LIST, (ArrayList<? extends  Parcelable>) resultList);
}

Сам подход ниок. Насколько будет оправдан singleton, в данном случае ?

Answer 1

Если только String переменные, да и вообще если переменные у объекта примитивные, то можно наследовать интерфейс Serializable.

public class MyClass inplements Serializable {
}

В интент закидывается так:

MyClass objectToSend = new MyClass();
Intent intent = new Intent();
intent.putSerializable ("data", objectToSend);

В активити получаем так:

MyClass obj = (MyClass) getIntent.getSerializableExtra("data");

Так же в Serializable можно закинуть ArrayList

READ ALSO
без причины вызывается метод repaint()

без причины вызывается метод repaint()

Создал JPanel на котором есть 3 кнопки, и овал, нарисованный в методе paintComponent()По задумке, при нажатии на одну из кнопок, она обводится в рамочку,...

416
Как передать строку из Activity в Fragment

Как передать строку из Activity в Fragment

Хочу передать строку из Activity в Fragment, помогите исправить ошибку

939
Сортировка чисел и вывод их на экран

Сортировка чисел и вывод их на экран

Я сделал 1 и 2 пунктыКак сделать 3 пункт?

503
Доступ к событиям чужого калентаря

Доступ к событиям чужого калентаря

Необходимо получить список событий чужого Google-календаряПытаюсь сделать так:

325