Autore Topic: scelta intent service, service , foregrounservice  (Letto 436 volte)

Offline tonno16

  • Utente storico
  • *****
  • Post: 1197
  • Respect: +58
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
scelta intent service, service , foregrounservice
« il: 11 Maggio 2015, 14:09:35 CEST »
0
Salve a tutti.
Pensavo di creare un semplici lettore, poiché non ho mai usato media player e vorrei apprenderne l'uso.
Premetto che ho usato più volte un service normale.
Ora....sulla DOC c'è scritto che esso lavora sul thread principale. Per operazioni del tipo riproduzione mp3 è consigliato un thread separato. Mediaplayer è asincrono per definizione quindi già la frase letta sulla DOC è ambigua.

Intent service è un service con thread separato quindi ottenibile con service più tread o asynk etc.
Se devo solo riprodurre musica allora mi basterebbe un service da invocare con la traccia scelta dalla lista nell' activity.

Se in futuro volessi scaricare le immagini da web degli album....qui si tratta di lunghe operazioni che mi inducono a scegliere intent service.

Cosa conviene fare? Guardare al futuro?
Ho tralasciato i foreground service perché mai avuto esperienza.

Consigli? Grazie

iClaude

  • Visitatore
Re:scelta intent service, service , foregrounservice
« Risposta #1 il: 11 Maggio 2015, 16:11:46 CEST »
0
Il music player predefinito di Android è implementato come un misto tra started e bound Service, quindi se scegli un Service normale (non IntentService) non ti sbagli.
Per operazioni aggiuntive, tipo scaricare le copertine degli album, puoi sempre creare dei Service specifici che comunicano i risultati al primo.

Offline tonno16

  • Utente storico
  • *****
  • Post: 1197
  • Respect: +58
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:scelta intent service, service , foregrounservice
« Risposta #2 il: 11 Maggio 2015, 16:16:03 CEST »
0
Oppure semplicemente lasciare la parte scaricamento dati all' activity. Penso di prelevare gli album dallo stesso file. Se all'avvio IP numero di canzoni è diverso da quello memorizzato allora controllo in un ipotetico i record con nome non presenti nelle canzoni sulla memoria del telefono.

Inoltre vorrei puntare a consumare meno RAM possibile.
Quando usai i service mi ricordo di aver trovato un bug riscontrato e documentato su internet che non permetteva un restart corretto del service. In effetti su alcune versioni non ripartiva correttamente. Speriamo

Offline tonno16

  • Utente storico
  • *****
  • Post: 1197
  • Respect: +58
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:scelta intent service, service , foregrounservice
« Risposta #3 il: 16 Maggio 2015, 14:39:41 CEST »
0
Riprendo il topic e chiedo: Quando uso il service, esso gira in background, e posso anche farlo ripartire. Ma se chiudo l'app, il service ci mette 5-10 secondi per ripartire. Ovvero l'utente sente muto per x secondi. Come prevengo?

Post unito: 17 Maggio 2015, 09:58:54 CEST
Forse mi rispondo da solo. Ho avviato google play music , fatto partire una canzone e successivamente killato l'app. La musica si è arrestata. Sinceramente non ci avevo mai fatto caso. Sapevo che android killa le app in assenza di memoria o a suo piacimento. Evidentemente un app che fa il bind di un service ha una alta priorità che la porta a non essere killata.
« Ultima modifica: 17 Maggio 2015, 09:58:54 CEST da tonno16, Reason: Merged DoublePost »