Comment puis-je utiliser un service pour surveiller le changement d'orientation dans Android
Je suis en train d'écrire un Widget qui affiche un compte à rebours. J'ai le widget de travail comme je le souhaite jusqu'à ce que je basculer le téléphone de paysage à portrait. Mon widget n'a pas de mise à jour et passe à l'état initial au début de la widget jusqu'à ce qu'un onupdate est appelé par mon récurrents d'alarme. Je voudrais appeler un onupdate manuellement une fois que les changements d'orientation pour la mise à jour de mon widget, j'ai fait des recherches sur ce depuis un moment maintenant et j'ai trouvé que j'ai besoin d'utiliser un Service qui sera chargé de surveiller les changements d'orientation et d'appeler mon onupdate pour mon widget.
Mon problème est que je ne peux pas trouver une réponse claire quant à la façon d'utiliser un service pour suivre le changement. J'ai vu qu'avec une activité que je peux ajouter android:configChanges="orientation|keyboardHidden" pour le manifeste pour une activité et de l'utilisation d'un onConfigurationChangedmais puis-je le faire pour un service. Si oui, comment? Est-il un meilleur moyen de suivre le changement d'orientation? J'ai aussi lu sur internet qu'un service n'est pas la meilleure façon de le faire.
J'ai vu des tutoriels pour la création de l'orientation des auditeurs, mais ils semblent utiliser amorti des appels de fonction.
Merci d'Avance
source d'informationauteur Dysen
Vous devez vous connecter pour publier un commentaire.
Service#onConfigurationChanged(Configuration newConfig)
fonctionne pour moi. Pas besoin de s'inscrire Récepteurs à mon avis. J'ai aussi fait de ne pas ajouter un filtre à AndroidManifest. Ai-je raté quelque chose dans la discussion, puisque personne n'a suggéré cette solution? Mon Service est en cours d'exécution sur le premier plan.Il suffit de placer à l'intérieur de votre service:
Veuillez trouver ci-dessous un exemple qui ne de ce que vous demandez, espérons que cette aide.
et voici MyService classe
et voici la partie de définir MyService dans le fichier de manifeste
Vous pouvez créer un BroadcastReceiver qui écoute L'intention.ACTION_CONFIGURATION_CHANGED (android.l'intention.d'action.CONFIGURATION_CHANGED)
Notez qu'il ne dit:
Ce qui signifie que vous ne pouvez pas enregistrer votre récepteur dans le fichier manifeste. Vous devez vous enregistrer dans le code.
puis obtenir la configuration et vérifier que l'orientation est comme Floern déclaré.
Je vous suggère d'utiliser un OrientationEventListener objet. C'est exactement ce que vous recherchez et il n'est pas obsolète. Il a été autour depuis l'API de niveau 3.