Страница 1 из 1
Android и singleton
Добавлено: 19 апр 2014, 21:27
hard
Подскажите, уже замучался. Я использую следующий код когда мне нужно сделать объект синглтон.
MyObject instance = null;
public static MyObject getInstance(){
if(instance==null){
instance = new MyObject();
}
return instance;
}
На сколько я понимаю с помощью него мой объект создается только один раз, а дальше просто возвращается существующий.
Проблема в том что, иногда даже при перезапуске приложения бывает не равен нулю и просто возвращается.
Разве так и должно быть, или это какой то глюк?
Re: Android и singleton
Добавлено: 19 апр 2014, 22:15
Foenix
при "перезапуске" приложения - мнооого чего остается) Это ж андроид рулит с GC.
Re: Android и singleton
Добавлено: 19 апр 2014, 22:17
hard
Ну разве должен при перезапуске приложения объект сохраняться, это же не нормально. Может подскажите как обойти это?
Re: Android и singleton
Добавлено: 19 апр 2014, 22:25
rezak90
лучше скажи как ты делаешь "перезапуск приложения", потому что мне подсказывают святые духи, что ты с приложения не выходишь
Re: Android и singleton
Добавлено: 19 апр 2014, 22:29
hard
Просто, кнопкой back выхожу из приложения.
Re: Android и singleton
Добавлено: 20 апр 2014, 16:53
altwin
Это не синглтон, а объект обнуляющий свой инстанс перед созданием нового...
Во первых переменная instance должна быть private static. Во вторых приватный конструктор. Делать instance = null для singleton безсмысленно хотя бы потому, что создается он один раз и если его нужно обнулить перед созданием - это повод для exception
P.S> пустая ссылка на объект в памяти и его отсутсвие -это разные вещи.
Re: Android и singleton
Добавлено: 20 апр 2014, 17:18
Foenix
hard писал(а):Просто, кнопкой back выхожу из приложения.
о..... учи андроид
Re: Android и singleton
Добавлено: 20 апр 2014, 19:49
rezak90
hard писал(а):Просто, кнопкой back выхожу из приложения.
Foenix писал(а):о..... учи андроид
Re: Android и singleton
Добавлено: 20 апр 2014, 21:36
hard
Спасибо за совет учить андроид. Но я сюда пришел чтоб мне помогли и а не с умным видом сказали учи андроид.
На счет того что это не совсем синглтон я понимаю, и то что конструктор приватный и тд. Только не понял почему вы говорите что он обновляется инстенс перед созданием. Он же просто проверяет если объект уже создан возвращает созданный, если нет создает новый?
P.S. До меня видимо дошло, объект сохраняется потому что переменная instance static.
Если так, вопрос такой, если мне нужно чтоб объект создавался один раз при запуске приложения и умирал после закрытия, могу ли использовать тот же метод проверки на ноль instance, только сделать эту переменную не static. Используют ли такой подход? Или для такой задачи есть что то другое?
Re: Android и singleton
Добавлено: 21 апр 2014, 07:24
klblk
ребята выше просто хотят сказать, что ни кнопка back, ни кнопка home не закрывают приложение. Просто сворачивают, и если повезет, то система его когда-нибудь убьет его.
Re: Android и singleton
Добавлено: 21 апр 2014, 07:57
hard
klblk писал(а):ребята выше просто хотят сказать, что ни кнопка back, ни кнопка home не закрывают приложение. Просто сворачивают, и если повезет, то система его когда-нибудь убьет его.
Спасибо, теперь понял))