Chcę utworzyć klasę Singleton, która będzie można wywoływać ze wszystkich punktów w mojej aplikacji. Problem polega na tym, że ta klasa będzie potrzebować kontekstu dla swoich operacji.Singleton z kontekstem w Androidzie
Nie chcę odtwarzać singletonu w każdym działaniu, ponieważ w ten sposób traci sens, więc pomyślałem o stworzeniu go w mojej MainActivity, z metodą init, w której przekazuję kontekst jako argument. Od tego momentu mój Singleton byłby użyteczny, ale myślę, że jest to zły projekt, ponieważ w ten sposób moje odwołanie do MainActivity będzie zawsze trzymane, a tym samym mogę napotkać wycieki pamięci.
Czy jestem tutaj?
Jeśli mój obiekt Singleton jest statyczny, a ja trzymam odnośnik do kontekstu, wówczas ten kontekst nie jest nigdy zbiorem śmieci. Jeśli się nie mylę, może to spowodować wyciek pamięci. Jeśli tak nie jest, rozwiń trochę odpowiedź. – MichelReap
Wycieki pamięci * liczba mnoga *? Jeśli jest to singleton, to istnieje jedno odniesienie do jego zmiennych instancji. Jak to jest przeciekiem, a nawet gdyby tak było, jak to by w rzeczywistości miało znaczenie? –
Cóż, wszystkie zasoby przechowywane w działalności, w której uruchamiam Singleton, będą przechowywane przez cały czas wykonywania aplikacji. Gdybym na przykład miał tam wielki obraz, mógłby z łatwością wypełnić moją pamięć i wkrótce mógłbym z niej skończyć. – MichelReap