Autore Topic: Connessione bluetooth usando un service, è giusto?  (Letto 455 volte)

Offline ste9206

  • Nuovo arrivato
  • *
  • Post: 23
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S4
  • Sistema operativo:
    Windows 8
Connessione bluetooth usando un service, è giusto?
« il: 29 Giugno 2015, 14:04:22 CEST »
0
Ciao  :-) devo realizzare un'app che via bluetooth permetta di scrivere/inviare messaggi ad un controllore. L'avevo già realizzata tramite runnable ma il problema è che ogni tot si disconnette. Volevo a questo punto usare un service (la connessione via spp deve rimanere attiva finchè non si preme disconnetti). La mie domande sono:
-meglio intent service (di cui ho già esperienza) o service?
-nel caso di un service, come va implementata la connessione (nel caso dell'intent service avrei onHandleIntent...)

Grazie per le vostre risposte ;-)

iClaude

  • Visitatore
Re:Connessione bluetooth usando un service, è giusto?
« Risposta #1 il: 06 Luglio 2015, 14:55:12 CEST »
0
I Service sono sempre indicati per gestire operazioni in background non direttamente legate all'interfaccia utente.
La scelta sul tipo di Service dipende dalle tue esigenze.
Un IntentService é costruito attorno ad un Handler che gestisce le operazioni una alla volta in modo sequenziale.
Se invece serve un'esecuzione parallela allora bisogna utilizzare un Service normale,  ricordando di gestire le operazioni in un thread separato (l'IntentService fa questo in automatico).

Offline ste9206

  • Nuovo arrivato
  • *
  • Post: 23
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S4
  • Sistema operativo:
    Windows 8
Re:Connessione bluetooth usando un service, è giusto?
« Risposta #2 il: 06 Luglio 2015, 15:18:29 CEST »
0
Ho optato per un service, in quanto l'IntentService, una volta finita l'esecuzione nell'onHandleIntent, si distrugge.
Tuttavia non mi sono chiare alcune cose:
-mi serve un thread per la connessione tramite SPP, e uno per il read/write...li posso usare nello stesso Service?
-un Service, una volta eseguito il codice in onStartCommand, si distrugge anche lui o resta in esecuzione?
-se dovessi riempire una textbox in tempo reale, ogni volta che arriva una stringa via bluetooth,posso usare un local broadcast manager, come dell'intent service?

iClaude

  • Visitatore
Re:Connessione bluetooth usando un service, è giusto?
« Risposta #3 il: 09 Luglio 2015, 11:17:44 CEST »
0
Un Service può comunicare con una Activity in vari modi. I broadcast sono tra questi.
Per essere sicuro che un Service non venga chiuso dal sistema quando l'app non è in uso puoi usare i metodi startForeground e stopForeground.