Страница 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 выхожу из приложения.
:idea: :arrow:
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 не закрывают приложение. Просто сворачивают, и если повезет, то система его когда-нибудь убьет его.
Спасибо, теперь понял))