Задать вопрос

Singleton Andoid как правильно?

В приложении используется Singleton для хранения данных полученных из сети и отображаемых на разных Activity, нашел информацию о том что если Activity не активна на текущий момент - то ссылка на нее не обязана хранится и объект может быть удален GC, ну а если никто не будет ссылаться на Singleton - то он тоже будет убран. Нашел реализацию через наследование от класса Application, но это вызывает неудобства, т.к. Application доступен только из Activity. Я сделал обычный Singleton, а в наследнике Application инициализировал ссылку на Singleton, чтоб GC не добрался. Собственно вопрос, на сколько это правильно и работоспособно?
public class Singleton{
}
public static synchronized Singleton getInstance(){
...
}


public class MyApp extends Application{
private Singleton = Singleton.getInstance();
}
  • Вопрос задан
  • 3688 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Android-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Мидл Android‑разработчик
    5 месяцев
    Далее
  • Академия Codeby
    Курс «Анализ защищенности приложений Андроид»
    14 недель
    Далее
Решения вопроса 1
anyd3v
@anyd3v
От чего зависит ваш синглетон? если от контекста тогда делайте инит в Application#onCreate если нет то
www.oracle.com/technetwork/articles/java/singleton...
stackoverflow.com/questions/17799976/why-is-static...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
gadfi
@gadfi
https://gamega.org
посмотрите в сторону dagger, смотрел примеры с ним ─Singleton не проблема, инджектится без проблем, в сэмплах инджектили даже в адаптер, не уверен что это лучший выбор, сам с dagger только начинаю работать
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы