7
votes

Sensormanager.registeristerlisterner (.., gestionnaire de manutention), exemple s'il vous plaît?

Je ne comprends pas comment utiliser cette méthode,

sensormanager.registeristerlister (SensorevenTenertirez-vous, capteur de capteur, taux Int, gestionnaire de manutention);

(Documentation ici)

1) S'il utilise un sensOvantageListener, alors quel est le but du gestionnaire?

2) Veuillez donner un exemple de gestionnaire que je pourrais transmettre à cela?

Merci!


0 commentaires

3 Réponses :


11
votes

S'il utilise un sensOvantageListener, alors quel est le but du gestionnaire?

Si je devais deviner, vous pouvez obtenir les événements de votre capteur livrés sur un thread de fond (par exemple, un Handlerthread ). Par défaut, les événements de capteur sont livrés sur le fil principal de l'application, qui va bien dans certains cas.


2 commentaires

Pouvez-vous déclarer plusieurs capteurs ici?


Puis-je utiliser plusieurs arguments de capteur?



23
votes

Ici, vous avez un exemple: xxx

à partir du code source de la classe d'Android Sensormanager, vous pouvez voir que l'enregistrementListener () extraire le boucle de votre gestionnaire pour créer un nouveau gestionnaire avec ce boucle où il appelle la méthode Onsensorchanged.

Si vous ne passez pas votre gestionnaire, le sensormanager utilisera le fil d'application principal.


1 commentaires

Merci pour cette réponse, claire et concise. IMHO cela devrait être ajouté aux documents officiels :)



1
votes

1) S'il utilise un sensOvantageListener, alors quel est le but du gestionnaire? Si vous l'exécutez sur le fil principal et que vous effectuez des calculs lourds, vous ralentirez l'interface utilisateur principale d'être insensible. N'écrivez pas vos tâches longues dans un fil séparé, pour éviter ANR.

Voici un exemple http://stacktips.com/tatudials/andrroid/android -service-Exemple


0 commentaires