Статические параметры не сохраняются в действиях - PullRequest
0 голосов
/ 24 сентября 2010

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

Я инициализирую ключ API в моей основной Деятельности один раз, когда он создается, и для элемента saveInstanceState установлено значение null.

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

В частности, есть одно действие, которое я вызываю из моего действия предпочтений, которое всегда завершается неудачей, поскольку ключ API не установлен.

Не поддерживаются ли статические поля в Деятельности, как в обычных приложениях Java? Я думал, что для конкретного экземпляра jvm все статические поля сохраняются. Платформа Android использует новые экземпляры jvm для новых операций?

Ответы [ 2 ]

1 голос
/ 24 сентября 2010

Пожалуйста, прочитайте:

http://developer.android.com/guide/topics/fundamentals.html#procthread

Ваше приложение работает в процессе.Процесс может быть необходимо убить, пока он находится в фоновом режиме.Ваше приложение должно правильно сохранить любое состояние, подходящее для работы в фоновом режиме (через ex Activity.onSaveInstanceState ()), и / или восстановить его состояние при последующем перезапуске в новом процессе.

0 голосов
/ 24 сентября 2010

Вы обращаетесь к статическому полю прямым или косвенным образом? Другие действия мешают работе с ключом Api? Если это так, вам следует synchronized до доступа к нему

...