Как сохранить коллекцию Java в приложениях Android - PullRequest
1 голос
/ 10 января 2012

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

Можно ли поддерживать коллекцию java, такую ​​как hashmap или hashtable, для поддержки во всем приложении, пока пользователь не выйдет из приложения и пользователь не сможет добавить или обновить данные в коллекции. Если это так, пожалуйста, ведите меня.

Ответы [ 5 ]

1 голос
/ 10 января 2012

Вы должны использовать Класс приложения , который поставляется с Android API.

Смотрите эту ссылку ..

http://www.xoriant.com/blog/mobile-application-development/android-application-class.html

0 голосов
/ 10 января 2012

Прежде всего, лучше использовать db для хранения.Вы должны искать, как оптимизировать ваши db-запросы и то, как вы их используете.Но в любом случае вы можете создать статическую хэш-карту или массив ваших объектов в вашем первом действии.Затем вы можете использовать этот объект коллекции в любом месте и выполнять любые операции. Он будет работать до тех пор, пока вы не выйдете из приложения или не произойдет каких-либо исключений при работе с коллекцией.

Класс MylunchedActivity расширяет Activty {

публичная статическая карта HashMap = new HashMap ();}

MylunchedActivity должно быть вашим первым действием.Затем, используя MylunchedActivity.map, вы можете работать над своей картой.

Надеюсь, это поможет.

С уважением, Рави

0 голосов
/ 10 января 2012

Вот несколько возможных решений:

Как сохранить хэш-карту, чтобы сохранить ее значение после перезагрузки устройства?

Сохранение хэш-карты в общих настройках

Один из них - сериализация / десериализация, а другой - использование sharedpreference, поскольку ваше требование - сохранять / редактировать данные до выхода пользователя из системы.

0 голосов
/ 10 января 2012

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

Вы можете передавать данные в Global Singleton, если они будут использоваться много.

public class YourApplication extends Application  {  

 public SomeDataClass data = new SomeDataClass(); 
// Your JAVA collections... 
} 

Тогда назовите это в любой деятельности:

YourApplication appState = ((YourApplication)this.getApplication());
appState.data.UseAGetterOrSetterHere(); // Do whatever you need to with the data here. 

Для получения дополнительной информации смотрите Класс приложений Android

0 голосов
/ 10 января 2012

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

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