Android и singleton

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Ответить
hard
Сообщения: 44
Зарегистрирован: 13 сен 2013, 14:21

Android и singleton

Сообщение hard » 19 апр 2014, 21:27

Подскажите, уже замучался. Я использую следующий код когда мне нужно сделать объект синглтон.

MyObject instance = null;

public static MyObject getInstance(){
if(instance==null){
instance = new MyObject();

}
return instance;
}

На сколько я понимаю с помощью него мой объект создается только один раз, а дальше просто возвращается существующий.

Проблема в том что, иногда даже при перезапуске приложения бывает не равен нулю и просто возвращается.

Разве так и должно быть, или это какой то глюк?

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Android и singleton

Сообщение Foenix » 19 апр 2014, 22:15

при "перезапуске" приложения - мнооого чего остается) Это ж андроид рулит с GC.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

hard
Сообщения: 44
Зарегистрирован: 13 сен 2013, 14:21

Re: Android и singleton

Сообщение hard » 19 апр 2014, 22:17

Ну разве должен при перезапуске приложения объект сохраняться, это же не нормально. Может подскажите как обойти это?

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Android и singleton

Сообщение rezak90 » 19 апр 2014, 22:25

лучше скажи как ты делаешь "перезапуск приложения", потому что мне подсказывают святые духи, что ты с приложения не выходишь
R.id.team
Политика на форуме запрещена

hard
Сообщения: 44
Зарегистрирован: 13 сен 2013, 14:21

Re: Android и singleton

Сообщение hard » 19 апр 2014, 22:29

Просто, кнопкой back выхожу из приложения.

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Android и singleton

Сообщение altwin » 20 апр 2014, 16:53

Это не синглтон, а объект обнуляющий свой инстанс перед созданием нового...
Во первых переменная instance должна быть private static. Во вторых приватный конструктор. Делать instance = null для singleton безсмысленно хотя бы потому, что создается он один раз и если его нужно обнулить перед созданием - это повод для exception

P.S> пустая ссылка на объект в памяти и его отсутсвие -это разные вещи.
Изображение

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Android и singleton

Сообщение Foenix » 20 апр 2014, 17:18

hard писал(а):Просто, кнопкой back выхожу из приложения.
о..... учи андроид
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Android и singleton

Сообщение rezak90 » 20 апр 2014, 19:49

hard писал(а):Просто, кнопкой back выхожу из приложения.
:idea: :arrow:
Foenix писал(а):о..... учи андроид
R.id.team
Политика на форуме запрещена

hard
Сообщения: 44
Зарегистрирован: 13 сен 2013, 14:21

Re: Android и singleton

Сообщение hard » 20 апр 2014, 21:36

Спасибо за совет учить андроид. Но я сюда пришел чтоб мне помогли и а не с умным видом сказали учи андроид.

На счет того что это не совсем синглтон я понимаю, и то что конструктор приватный и тд. Только не понял почему вы говорите что он обновляется инстенс перед созданием. Он же просто проверяет если объект уже создан возвращает созданный, если нет создает новый?

P.S. До меня видимо дошло, объект сохраняется потому что переменная instance static.
Если так, вопрос такой, если мне нужно чтоб объект создавался один раз при запуске приложения и умирал после закрытия, могу ли использовать тот же метод проверки на ноль instance, только сделать эту переменную не static. Используют ли такой подход? Или для такой задачи есть что то другое?

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Android и singleton

Сообщение klblk » 21 апр 2014, 07:24

ребята выше просто хотят сказать, что ни кнопка back, ни кнопка home не закрывают приложение. Просто сворачивают, и если повезет, то система его когда-нибудь убьет его.

hard
Сообщения: 44
Зарегистрирован: 13 сен 2013, 14:21

Re: Android и singleton

Сообщение hard » 21 апр 2014, 07:57

klblk писал(а):ребята выше просто хотят сказать, что ни кнопка back, ни кнопка home не закрывают приложение. Просто сворачивают, и если повезет, то система его когда-нибудь убьет его.
Спасибо, теперь понял))

Ответить