Existen algunas condiciones en las que se podría intentar iniciar mi servicio cuando no debería. En casos como este, ¿es malo llamar al stopSelf()
mientras está dentro de un método onStartCommand()
? Si es así, ¿cuál es la mejor manera de manejar una situación así? Cualquier recurso será muy apreciado.¿Puedo llamar a stopSelf() en Service.onStartCommand?
59
A
Respuesta
73
¿Es malo llamar a stopSelf() mientras está dentro de un método onStartCommand()?
Fuera de la cabeza, no puedo pensar por qué eso sería un problema.
stopSelf()
, como muchas cosas en Android, no tiene efecto inmediato. Coloca un mensaje en la cola de mensajes procesada por el hilo principal de la aplicación. El trabajo real de detener el servicio ni siquiera comenzará hasta algún momento después de que onStartCommand()
haya regresado.
Cuestiones relacionadas
- 1. Llamar a stopSelf() en el servicio mientras se ejecuta el hilo
- 2. ¿Cómo puedo llamar a MemberwiseClone()?
- 3. ¿Cómo puedo llamar a getContentResolver en android?
- 4. ¿Cómo puedo llamar a Enumerable.Join desde F #?
- 5. ¿Puedo llamar a Perl desde python?
- 6. Heroku - ¿Puedo llamar a Maven desde Procfile?
- 7. ¿Cómo puedo llamar a Perl desde Java?
- 8. ¿Puedo llamar a startActivity() desde dentro onResume()?
- 9. ¿Cómo puedo llamar a Erlang desde Python?
- 10. ¿Puedo llamar eliminar en primitivas?
- 11. ¿Cómo puedo llamar a Initialize en un MembershipProvider personalizado?
- 12. ¿Cómo puedo llamar a un método en un objeto nulo?
- 13. ¿cómo puedo llamar a esta función en cython?
- 14. ¿Cómo puedo llamar a un método en Objective-C?
- 15. ¿Cómo puedo llamar a una función de SQL en C#?
- 16. ¿Cómo puedo llamar a una función con retraso en Python?
- 17. ¿Puedo prohibir llamar a métodos estáticos en instancia de objeto?
- 18. ¿Puedo llamar una etiqueta personalizada en cfscript?
- 19. ¿Cómo puedo verificar si puedo llamar a host() en un objeto URI en Perl?
- 20. Llamar a Python en PHP
- 21. ¿Llamar a Python en Java?
- 22. ¿Llamar a BeginInvoke en MulticastDelegate?
- 23. puedo llamar a un archivo js de otro.
- 24. Cómo puedo llamar a las funciones de C++ desde ruby
- 25. ¿Puedo probar SmtpClient antes de llamar a client.Send()?
- 26. ¿Puedo llamar a un constructor de copia de forma explícita?
- 27. ¿Cómo puedo llamar a notepad.exe desde un programa C?
- 28. ¿Puedo llamar a un procedimiento almacenado con criterios de hibernación?
- 29. ¿Cómo puedo llamar a C++/CLI desde C#?
- 30. ¿Cómo puedo llamar a un método dado solo su nombre?
Pensé que no, pero no estaba completamente seguro del funcionamiento interno de la clase de servicio y llamé a una función que evita que se inicie incluso antes de que termine algún evento relacionado parece que podría dar lugar a un comportamiento no deseado dependiendo sobre cómo fue diseñado. –
@SpencerRuport: 'stopSelf()', como muchas cosas en Android, no tiene efecto inmediato. Coloca un mensaje en la cola de mensajes procesada por el hilo principal de la aplicación. El trabajo real de detener el servicio ni siquiera comenzará hasta algún momento después de que 'onStartCommand()' haya regresado. – CommonsWare
Como pregunta de seguimiento, ¿cuál sería el valor de retorno apropiado al haber llamado 'stopSelf()'? –