2013-10-05 7 views
1

У меня есть активность, которая имеет много полей (полей/членов класса). Я хочу установить эти поля, вызывая другие действия (с startActivityForResult), но значения полей не сохраняются. Похоже, что каждый раз, когда я возвращаюсь из другого действия в свой исходный, создается новый экземпляр и поля повторно инициализируются (метод onCreate() вызывается каждый раз, когда я возвращаюсь из другого действия, также вызывается onDestroy() оригинал каждый раз, когда я загружаю другое действие с помощью startActivityForResult, я никогда не вызываю finish()). Надеюсь, я хорошо объяснил свою проблему.Активность Android повторно создается каждый раз

Любые предложения приветствуются.

Спасибо, Silviu

+0

Я решил свою проблему, переопределив onSaveInstanceState и onRestoreInstanceState и сохраняя/восстанавливая все мои данные. Но все же я не думаю, что это ответ на мой вопрос выше. – silviu

ответ

0

Убедитесь, что все поля имеют уникальные идентификаторы, как Android использует эти идентификаторы, чтобы сохранить значения полей, когда он перерисовывает деятельность.

+0

Я говорил о классах/членах класса. Я не понимаю, почему класс Activity, который я использую, повторно создается (и все его члены класса сбрасываются в свои объявления). – silviu

0

У вас установлен андроид: launchMode = "singleInstance" в манифесте Android для Activity, где у вас есть код startActivityForResult?

Если так, удалите этот launchMode, как некоторые известные проблемы с startActivityForResult.

+0

Нет, у меня нет этого набора для любой активности в AndroidManifest. – silviu

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