Je suis un noob android qui cherche quelques conseils sur la façon d'utiliser correctement un service dans Android. Je construis une application qui va se connecter à un serveur sur Internet pour obtenir un flux de données via TCP. Ces données doivent ensuite être envoyées à un autre périphérique connecté via un port série Bluetooth. Je veux que cela continue à fonctionner en arrière-plan pendant que l'utilisateur regarde une activité différente.Conception de services Android - commencez avec l'activité ou seulement si nécessaire?
L'application sera un client NTRIP, qui récupère les données de correction RTK en temps réel sur Internet et les envoie à un récepteur GPS RTK auquel je me connecte via bluetooth. Le débit de données sera d'environ 500 octets/seconde. L'interface utilisateur est un bouton unique pour connecter ou déconnecter le flux de données et du texte pour montrer l'état du récepteur GPS. Il y a aussi quelques paramètres qui devront être configurés par l'utilisateur tels que l'IP/le port du serveur auquel se connecter et le périphérique Bluetooth avec lequel communiquer.
Je pense que j'ai besoin que l'activité principale génère un service local, puis que le service génère un thread pour le flux TCP et un autre thread pour la connexion bluetooth. Est-ce que ça sonne bien?
Quel est le meilleur modèle pour le service dans ce scénario? -Démarre (lier) le service chaque fois que l'activité démarre et que le bouton de connexion/déconnexion envoie des commandes au service pour démarrer/arrêter les threads. Si je vais cette route, le service continuera à fonctionner après que l'utilisateur se déconnecte et se rende à une autre application. Le service aurait besoin d'un temporisateur d'inactivité pour se terminer.
-Démarre et arrête le service lorsque l'utilisateur appuie sur le bouton de connexion/déconnexion. Le service s'exécute uniquement lorsque les données sont en mouvement. Si je fais cela, l'activité devra voir si le service est en cours d'exécution au démarrage de l'activité, afin de savoir s'il doit se lier au service ou dire à l'utilisateur que le lien est déconnecté.
Merci.
Partiellement faux et l'autre partie est totalement confuse et pas claire peut-être même mal aussi. –