Список эффективной деятельности - PullRequest
0 голосов
/ 13 февраля 2010

Я пытаюсь сделать мой Список активности более эффективным. У меня есть список активности в моем приложении, при каждом вызове он поступает в базу данных, собирая некоторую информацию и отображая ее на экране (в виде списка).

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

например, у меня есть Arraylist, который выделяется каждый раз в методе onCreate моего списка активности, и еще много выделений, которые я делаю в onCreate.

Я нахожу, что это сильно замедляет мою программу, моя программа очень нестабильна, и я пытаюсь достичь некоторых исполнений ... Любая идея, как я могу избежать этого onCreate каждый раз, когда я повторно называю свой Список активности? Может быть, другая техника для сокращения перераспределений? Спасибо, Идан.

Ответы [ 2 ]

2 голосов
/ 05 января 2011

Вместо того, чтобы делать ArrayList статическим, вы должны хранить эти данные в модели. Возможно, вы захотите использовать шаблон Singleton для модели. Вы также можете создать класс, который расширяет приложение, сделать так, чтобы ваше приложение использовало ваш класс приложения вместо значения по умолчанию и сохранить там данные списка. В файле манифеста укажите следующую строку для класса приложения.

<application android:name=".MyApplicationClass" android:icon="@drawable/icon" android:label="@string/app_name">

Если вы используете подход Application, вы вызываете getApplication из ListActivity и проверяете, были ли данные загружены из БД.

0 голосов
/ 13 февраля 2010

Если вы выбираете данные из SQLite для помещения в ListView, верните данные как Cursor и создайте пользовательский CursorAdapter для работы со списком.Это будет более эффективно, чем возвращать ArrayList объектов (я полагаю, это то, что вы делаете).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...