2012-07-02 9 views
0

Je crée un projet qui se connecte à une puce Bluetooth intégrée. Actuellement, je l'ai mis en place avec une classe d'application distincte qui contrôle toutes les fonctionnalités Bluetooth.Application vs Service vs Intent

Mon programme initialisé avec un menu principal qui a 9 boutons. Dans l'écran principal, je crée la connexion à l'appareil Bluetooth. Chaque bouton m'amène à une activité séparée. Chaque activité doit recevoir différentes données provenant de la puce Bluetooth.

Ma question à tous est la suivante: est-ce que cela aurait du sens pour moi d'utiliser un service plutôt qu'une application? D'après ce que je comprends d'un service, il est utilisé parce qu'il y a toujours quelque chose qui fonctionne en arrière-plan. Cependant, dans ce cas, rien ne doit être exécuté en arrière-plan (à moins de conserver la connexion avec le périphérique Bluetooth), les données ne sont envoyées/reçues que lorsqu'une activité le demande.

Ou, suis-je complètement hors de propos et ne dois-je pas utiliser non plus? Juste une classe simple pour agir comme mon conteneur de données qui peut être transmis par des intentions? Je sais que cela fonctionnera, mais je suis très nouveau sur Android et les intentions semblent être un peu brouillon. Je préférerais ne pas utiliser d'intentions si je n'avais pas à le faire.

Répondre

1

Je construis aussi une connexion bluetooth, et je mets tout le matériel de communication dans un service et je me lie à ce service avec chaque activité qui doit utiliser la connexion. Cela fonctionne plutôt bien pour moi. Vous pourriez vouloir choisir de cette façon aussi.

En fait, j'ai déjà réalisé un moyen de maintenir la connexion dans l'application, mais maintenant je préfère la façon de service, parce que j'utilise l'application pour les états globaux.

En utilisant le service réduit également la nécessité d'intentions à une très petite quantité :)

1

Dans votre cas, une propriété statique pour la connexion Bluetooth serait la solution la plus pragmatique

+0

Ce n'est pas très instructif. Que voulez-vous dire par une propriété statique. – JuiCe

+1

Je veux dire créer une propriété statique dans une classe, telle que BluetoothContainer.connection, qui sera donc accessible à toutes les activités de l'application. Vous pouvez l'envelopper avec un getter statique et l'appeler Singleton, si vous voulez. Bien sûr, il y a une limite - vous ne pouvez avoir qu'une seule connexion, mais il semble que l'OP n'a pas besoin de plus d'une connexion. – disjunction

+0

Je pense que cela ressemble à ce que je veux. Mais comme je l'ai dit, je suis très nouveau pour Android. Serait-ce juste une classe en soi, pas une sous-classe? Comment accéder à cela à partir d'autres activités? Intents? – JuiCe