J'ai une application où je crée un service de premier plan pour m'assurer qu'un téléchargement initié par l'utilisateur continue même si l'utilisateur quitte l'application ou l'application est tué par la pression de la mémoire.Est-ce que mon singleton sera tué?
Le service et l'application utilisent un singleton pour transmettre des données. Je sais que ce n'est pas la meilleure solution, alors je vous prie de vous abstenir de tout commentaire sur les singletons bad-bad car la question ne se trouve pas ici:
Lorsque je ferme l'application, mon service d'avant-plan continue à fonctionner et peut accéder au singleton. Y a-t-il un risque que le singleton soit ramassé en raison de la pression de la mémoire ou y a-t-il d'autres risques liés à la mémoire d'utiliser un singleton dans ce cas?
Mon service est un service ** d'avant-plan **, ce qui signifie que les risques d'être tué en raison de la pression de la mémoire sont négligents. La question est une fois que l'activité a été tuée, y a-t-il une chance que le singleton s'en mêle? –
@AlexandreG Si votre singleton est en quelque sorte connecté avec 'gc root', alors' gc' ne peut littéralement pas éliminer votre singleton. Il semble que vous mélangez les notions de gc et de système. Le système tue le processus, mais gc juste les objets sans références à 'gc root'. – eleven
Être un service d'avant-plan ne compte pas autant que vous le pensez, ils peuvent aussi être tués, ils sont simplement tués plus tard. En fait, je pense que la plupart des services mentent et disent qu'ils sont au premier plan ces jours-ci. –