я новичок в android и java... я читаю несколько дней об учебнике по Android для передачи данных или значений переменных из одного действия в другое или из одного класса в другой... но я не очень понимаю об этом. Можете ли вы сказать мне, что необходимо использовать Parcelable
для этой цели, потому что та же задача может быть также выполнена с использованием ключевого слова static
для переменных типа строки, целого числа или массива, тогда почему можно разделить, пожалуйста, объясните подробно .. спасибо за объяснение заранее, пожалуйста, предоставьте сравнение с примером
Зачем использовать посылки, если вы можете выполнить ту же задачу, используя статические переменные?
Ответы (2)
Хотя технически оба подхода будут работать, есть пара недостатков.
Во-первых, статическая переменная является статической. Если у вас есть два экземпляра одного и того же действия, они оба будут ссылаться на один и тот же статический объект. Это, вероятно, не то, что вы хотите.
Во-вторых, считается плохой практикой обращаться к глобальным переменным. Это затрудняет просмотр того, что происходит, его трудно протестировать, и вы, кто-то (другой класс), можете изменить ваши данные. Это создает некоторые ужасные ошибки.
Передавая данные через объект Parcelable, становится очень ясно, что вы делаете, и вы избегаете обеих этих проблем.
Обратите внимание, что этот совет относится не к Android, а скорее к Java и программированию в целом.
Статические ссылки никогда не собирают мусор, поэтому в конечном итоге вы создаете нечто, называемое утечкой памяти.
Вы храните в памяти объект, который вам не нужен, и его нельзя освободить.
Если вы создадите достаточно экземпляров таких объектов, вы получите исключение нехватки памяти (oom), которое приведет к сбою приложения.