207 votes

Comment puis-je utiliser getSystemService dans une classe de non-activité (LocationManager) ?

Je ne parviens pas décharger des tâches à partir de la méthode OnCreate activités principale sur une autre classe de faire le gros du travail.

Lorsque j’essaie d’appeler getSystemService de la classe de non-activité, une exception est levée.

Toute aide serait grandement appréciée  :)

LMT.Java :

fyl.Java

2 votes

Addin

0 votes

H

0voto

auspicious99 Points 395

Pour certaines classes sans activité, comme Travailleur vous avez déjà reçu un objet Contexte dans le constructeur public.

Worker(Context context, WorkerParameters workerParams)

Vous pouvez simplement l'utiliser, par exemple en l'enregistrant dans une variable Contexte privée de la classe (disons, mContext ), puis, par exemple

mContext.getSystenService(Context.ACTIVITY_SERVICE)

0voto

Ivan Lopes Points 71

Si vous voulez l'obtenir dans un fragment, cela fonctionnerait en kotlin :

requireActivity().getSystemService(LOCATION_SERVICE) as LocationManager

-5voto

vincent mathew Points 608
(LocationManager) ((lmt) new Activity()).getSystemService(context);

Essayez ce code. Cela ne fonctionnera que si vous avez lancé l'activité avant d'appeler cette ligne de code. En effet, l'activité doit être créée et en cours d'exécution.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X