Я создал приложение для Android, в котором я использую класс приложения для хранения и доступа к глобальным переменным. Но я столкнулся со странным поведением, когда все переменные в моем классе приложения не инициализируются в следующих сценариях:
- если мое приложение какое-то время простаивает (скажем, 10 минут или около того).
- если мое приложение переходит в фоновый режим (если над приложением открывается браузер).
Я много искал в SO и в Интернете и не нашел подходящего ответа. Насколько я знаю, после инициализации класса приложения он будет доступен на протяжении всего времени существования приложения. Я что-то упустил здесь?
Поскольку я новичок в разработке Android, возможно, я делаю что-то не так. Может ли кто-нибудь указать мне правильное направление? ... Заранее спасибо.
public class MyApp extends Application {
private MyClass classObj = new MyClass();
private boolean flagOne = true;
private boolean flagTwo = false;
void setFlagOne(boolean flag) {
flagOne = flag;
}
boolean getFlagOne() {
return flagOne;
}
void setFlagTwo(boolean flag) {
flagTwo = flag;
}
boolean getFlagTwo() {
return flagTwo;
}
void setMyClassObj(MyClass obj) {
classObj = obj;
}
boolean getMyClassObj() {
return classObj;
}
}
onCreate
вызывается более одного раза, то каждый раз, когда он вызывается, это означает, что приложение было создано заново, и ваши переменные будут инициализированы до значений по умолчанию. Возможно, вам придется сохранить их, чтобы сохранить их состояние. - person Mister Smith   schedule 06.06.2014