2011-02-03 5 views
5

hey people, Я почти закончил писать свое первое приложение для Android. Это приложение для заметок с добавлением, редактированием экранов просмотра и т. Д.Android - Что более эффективно?

Первоначально я занимался перемещением между экранами в одном действии, создавая новые объекты макета, такие как таблицы и т. Д. ... и отображая их. Однако после некоторого чтения я изменил свой способ перемещения между экранами, используя различные действия для разных экранов. Однако каждое действие, которое вызывается как намерение, извлекает большое количество переменных из основного действия через setExtra и также возвращает большое количество переменных.

Теперь я хочу, чтобы мое приложение было настолько эффективным, насколько возможно, и я лично считаю, что обработка всего этого в одном действии меньше, чем голодная память и интенсивность процессора, хотя это имеет отрицательный смысл переменных, которые всегда присутствуют (и потребляют память) unlink в отдельной деятельности, где они убиты на финише(). Но вы, ребята, более осведомлены, а затем меня так, как вы думаете, это лучший способ сделать это?

+0

Для того, что вы хотите сделать, странно, что вам нужно передать так много переменных между действиями. Какие переменные они? И что вы подразумеваете под «большим числом»? – Dalmas

+0

Вы действительно измерили какие-либо проблемы с производительностью, вы получили диалог ADNR? Если нет, вам, вероятно, не стоит беспокоиться о производительности. –

ответ

5

Если вы запустите новое действие для новых экранов, вы добавите эту активность в стек. Таким образом, пользователь может вернуться назад и вернуться к предыдущему действию. Простое изменение макета устраняет эту функциональность. Я очень сомневаюсь, что у вас будут проблемы с производительностью в любом случае.

Лучшей практикой было бы начать новое мероприятие, лучше всего использовать текущий подход.

+1

Также подход с несколькими видами деятельности упрощает повторное использование. –

1

Все ваши действия будут проживать и выполняться из одного процесса. Поэтому нет причин, по которым вам нужно пройти вокруг кучи переменных. Вы могли бы (например) приклеить их в одноэлемент, который представляет ваш контекст. Когда одна деятельность перехватывает другую, она заполняет синглтон, а другой берет свои данные оттуда.

Конечно, если вы когда-либо намерены взаимодействовать с вашими внешними действиями, вам, возможно, придется переосмыслить этот подход, но я думаю, вы будете в порядке, чтобы ваши взгляды были отдельными действиями. Даже если память настолько немного выше, я думаю, что лучше делать все правильно и только беспокоиться о оптимизации, если и только тогда, когда станет очевидно, что вам это нужно.

Смежные вопросы