Possiamo avere più istanze di un servizio in Android? Desidero un servizio che possa rendere il telefono silenzioso in un momento specifico e voglio riutilizzarlo per rendere il telefono in modalità vibrazione in un momento specifico. Quindi, in pratica, se riesco a far funzionare il servizio più volte, non è necessario creare un altro servizio per impostare il telefono in modalità vibrazione. Inoltre, se possiamo eseguire più istanze, ti preghiamo di spiegare come fermarlo. Qualsiasi suggerimento sul codice ti aiuterà molto.Come avere più istanze di servizio in Android
risposta
Possiamo avere più istanze di un servizio in Android?
No. Si può avere più sottoclassi di Service
, ma qualsiasi sottoclasse di Service
avrà precisamente 0 o 1 istanze in un dato momento.
Desidero un servizio che possa rendere il telefono silenzioso in un momento specifico e voglio riutilizzarlo per rendere il telefono in modalità vibrazione in un momento specifico.
Non si dovrebbe utilizzare un servizio per nessuno di questi. Utilizzare AlarmManager
e uno BroadcastReceiver
, per favore.
Non credo che il servizio possa essere utilizzato per uno scopo simile. Il servizio deve fornire alcune funzionalità, ma solo un significato, non per diversi scopi. È meglio creare un servizio aggiuntivo per mantenere il codice semplice e chiaro.
La tua domanda non ha molto senso. Sembra che quello che vuoi fare sia avere più istanze dello stesso servizio in esecuzione e fare cose diverse contemporaneamente. Ma la tua domanda dipende fondamentalmente dal fatto che i servizi non dovrebbero fare cose su una scala temporale lunga. Invece, ciò che dovrebbe accadere è che ricevono un intento, magari generano una discussione o qualcosa del genere, e poi smettono di girarci intorno. Ricorda che un servizio è ancora in esecuzione sul thread principale, non è in background, quindi non dovresti eseguire attività a lungo termine in ogni caso. Quello che potresti voler vedere è un IntentService, che coordina con le tue attività attraverso l'uso di intenti che controllano cosa dovrebbe accadere.
- 1. Un servizio Android può avere più permessi?
- 2. Symfony 2 servizio con più istanze?
- 3. AngularJs 2: più istanze di servizio create
- 4. Posso avere più istanze di un modulo RequireJS?
- 5. Android: miscelazione di più istanze AudioTrack?
- 6. è possibile avere più istanze di variabili statiche
- 7. come installare più istanze dello stesso servizio Windows
- 8. Avere più SQLiteOpenhelper in un'appli Android
- 9. Android - Come creare istanze multiple di un'attività?
- 10. Come prevenire più istanze in Electron
- 11. Più istanze di iPhone Simulator?
- 12. Più istanze di assegni
- 13. Distribuire su più istanze di Heroku
- 14. Come evitare più istanze di un programma?
- 15. recupero classi più specifiche di istanze
- 16. Come si eseguono più istanze di un servizio ospitato OWIN su un cluster di sviluppo?
- 17. Limita più istanze di un'applicazione
- 18. Come avere più coppie "View-ViewModel"?
- 19. istanze di più negozi di flusso
- 20. esegue più istanze di node.js in parallelo
- 21. Come evitare più istanze di modulo di Windows in C#
- 22. Android che utilizza i layout come modello per la creazione di più istanze di layout
- 23. Impossibile creare più istanze di PowerPoint
- 24. Perché più istanze di un'app django?
- 25. Android ImageButton come avere un'area cliccabile più grande dell'immagine stessa?
- 26. Più istanze dello stesso componente di reazione
- 27. ZeroClipboard + angolare, più istanze
- 28. Come avere più vincoli in Rails routes.rb?
- 29. Distribuzione di più istanze di un'applicazione Rails - stesso codice, più
- 30. Dcucumber.options, come avere più tag
Grazie, sto usando AlarmManager per avviare il servizio in un intervallo di tempo. Potresti per favore aiutarmi a capire BroadcastReceiver e come usarlo con AlarmManager? –
@SumitSahoo: Invece di chiamare 'getService()' per creare il tuo 'PendingIntent', tu chiami' getBroadcast() '. E, invece che la tua logica aziendale si trova in un 'Servizio', si trova in un' BroadcastReceiver' (tipicamente registrato nel manifest tramite un elemento ''). –
CommonsWare