2016-08-22 6 views
0

Какой из двух способов ниже имеет лучшую производительность для передачи данных между действиями?Android, производительность передачи данных между действиями

  1. Activity1:putExtra("id" , customerId)

    Activity2: Выберите на столе и заполнить Customer объект

  2. Activity1:putExtra("customer", customer)

    Activity2:Customer customer = (Customer)getIntent().getExtras().getSerialaizable("customer");

Я имею в виду отправить уникальный объект (например, id) в следующую активность, а затем выбрать его из базы данных ИЛИ отправить весь объект в следующую операцию и наложить его?

+0

зависит от того, что вы хотите в своей следующей деятельности. Если вам нужен только один идентификатор, то зачем отправлять все данные Клиента на следующую операцию. –

+0

@VivekMishra Конечно, я хочу целые данные объекта! – AlirezaXX

+0

затем отправьте весь объект –

ответ

0

Serializable не рекомендуется в android, проверьте parcelable это faster.

Сериализация по сравнению с БД зависит от соударения с объектом, только профилирование может отображать изображение, но для одного объекта он пренебрежимо.

Самый быстрый способ заключается в том, чтобы хранить объект в памяти и делиться через одноэлементный.

1

Очевидно, что первый способ. Вы просто отправляете идентификатор объекта, а затем читаете его из базы данных во втором Activity. Другой способ включает сериализацию/десериализацию, которая требует процессорных циклов. Даже с использованием Parcelable по-прежнему будут использоваться значительные циклы CPU.

С другой стороны, я сомневаюсь, что вы заметили какие-либо штрафы за производительность, если вы не делаете это для объектов с базой. Делайте все, что проще и легче понимать/поддерживать.