Android и singleton
Android и singleton
Подскажите, уже замучался. Я использую следующий код когда мне нужно сделать объект синглтон.
MyObject instance = null;
public static MyObject getInstance(){
if(instance==null){
instance = new MyObject();
}
return instance;
}
На сколько я понимаю с помощью него мой объект создается только один раз, а дальше просто возвращается существующий.
Проблема в том что, иногда даже при перезапуске приложения бывает не равен нулю и просто возвращается.
Разве так и должно быть, или это какой то глюк?
MyObject instance = null;
public static MyObject getInstance(){
if(instance==null){
instance = new MyObject();
}
return instance;
}
На сколько я понимаю с помощью него мой объект создается только один раз, а дальше просто возвращается существующий.
Проблема в том что, иногда даже при перезапуске приложения бывает не равен нулю и просто возвращается.
Разве так и должно быть, или это какой то глюк?
Re: Android и singleton
при "перезапуске" приложения - мнооого чего остается) Это ж андроид рулит с GC.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Android и singleton
Ну разве должен при перезапуске приложения объект сохраняться, это же не нормально. Может подскажите как обойти это?
Re: Android и singleton
лучше скажи как ты делаешь "перезапуск приложения", потому что мне подсказывают святые духи, что ты с приложения не выходишь
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Android и singleton
Просто, кнопкой back выхожу из приложения.
Re: Android и singleton
Это не синглтон, а объект обнуляющий свой инстанс перед созданием нового...
Во первых переменная instance должна быть private static. Во вторых приватный конструктор. Делать instance = null для singleton безсмысленно хотя бы потому, что создается он один раз и если его нужно обнулить перед созданием - это повод для exception
P.S> пустая ссылка на объект в памяти и его отсутсвие -это разные вещи.
Во первых переменная instance должна быть private static. Во вторых приватный конструктор. Делать instance = null для singleton безсмысленно хотя бы потому, что создается он один раз и если его нужно обнулить перед созданием - это повод для exception
P.S> пустая ссылка на объект в памяти и его отсутсвие -это разные вещи.
Re: Android и singleton
о..... учи андроидhard писал(а):Просто, кнопкой back выхожу из приложения.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Android и singleton
hard писал(а):Просто, кнопкой back выхожу из приложения.
Foenix писал(а):о..... учи андроид
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Android и singleton
Спасибо за совет учить андроид. Но я сюда пришел чтоб мне помогли и а не с умным видом сказали учи андроид.
На счет того что это не совсем синглтон я понимаю, и то что конструктор приватный и тд. Только не понял почему вы говорите что он обновляется инстенс перед созданием. Он же просто проверяет если объект уже создан возвращает созданный, если нет создает новый?
P.S. До меня видимо дошло, объект сохраняется потому что переменная instance static.
Если так, вопрос такой, если мне нужно чтоб объект создавался один раз при запуске приложения и умирал после закрытия, могу ли использовать тот же метод проверки на ноль instance, только сделать эту переменную не static. Используют ли такой подход? Или для такой задачи есть что то другое?
На счет того что это не совсем синглтон я понимаю, и то что конструктор приватный и тд. Только не понял почему вы говорите что он обновляется инстенс перед созданием. Он же просто проверяет если объект уже создан возвращает созданный, если нет создает новый?
P.S. До меня видимо дошло, объект сохраняется потому что переменная instance static.
Если так, вопрос такой, если мне нужно чтоб объект создавался один раз при запуске приложения и умирал после закрытия, могу ли использовать тот же метод проверки на ноль instance, только сделать эту переменную не static. Используют ли такой подход? Или для такой задачи есть что то другое?
Re: Android и singleton
ребята выше просто хотят сказать, что ни кнопка back, ни кнопка home не закрывают приложение. Просто сворачивают, и если повезет, то система его когда-нибудь убьет его.
Re: Android и singleton
Спасибо, теперь понял))klblk писал(а):ребята выше просто хотят сказать, что ни кнопка back, ни кнопка home не закрывают приложение. Просто сворачивают, и если повезет, то система его когда-нибудь убьет его.