|
||
|
|
|
|||||||
| Avisos |
| Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
![]() |
|
|
Herramientas |
|
#1
|
||||
|
||||
|
Tener app abierta
Buenas me gustaría tener una app, que pueda notificar aun estando cerrada, tipo Whatsapp
Whatsapp esta cerrado, pero te llegan las notiificaciones Como puedo hacerlo?
__________________
BetaTester
Actualmente, SlimpLP+
|
|
|
|
#2
|
||||
|
||||
|
"¿Cómo puedo hacer para que una app cerrada envíe notificaciones?" La respuesta es sencilla, una app de usuario NO puede hacerlo. Saludos!
__________________
Para aprender en Android hay que experimentar con él, pero no demasiado, queremos conservar nuestro movil
|
|
#3
|
||||
|
||||
|
pongo mi caso:
Tengo un server socket, que me envia (a la app) una serie de datos. Si uno de los datos supera el valor establecido, me salta una notificacion
__________________
BetaTester
Actualmente, SlimpLP+
|
|
#4
|
||||
|
||||
|
Tendrías que crear un servicio y poner el código del Socket ahí, y un BroadcastReceiver que responda a ACTION_BOOT_COMPLETED para que siempre se lance el servicio cada vez que se inicie el móvil. Además el servicio debería ser START_STICKY, para que si el sistema decide matarlo que se vuelva a relanzar otra vez.
Ten en cuenta que mientras estás esperando a recibir datos por el Socket el móvil se puede dormir, y aunque se despertará si recibe algo por el Socket, puede que no dure mucho, así que lo primero que deberías de hacer después de recibir algo es activar un WakeLock, y justo antes de quedar esperando a recibir algo desactivarlo. Por último, el servicio funcionará siempre, aunque no abras la app, pero al menos debes abrirla una vez (no puede existir un servicio sin Activity, como poder puede existir, pero nunca se activaría). Y si cierras la app desde la pulsación larga de Home el servicio seguirá funcionando, y siempre se activará cada vez que reinicies el móvil (si pones el BroadcastReceiver). Pero si vas a Opciones -> Aplicaciones y le das a "Forzar detención", tu servicio también se parará, y no se activará nunca más hasta que vuelvas a lanzar otra vez la app. Espero que te haya quedado todo claro. |
|
#5
|
||||
|
||||
|
Tendrías que crear un servicio y poner el código del Socket ahí, y un BroadcastReceiver que responda a ACTION_BOOT_COMPLETED para que siempre se lance el servicio cada vez que se inicie el móvil. Además el servicio debería ser START_STICKY, para que si el sistema decide matarlo que se vuelva a relanzar otra vez.
Ten en cuenta que mientras estás esperando a recibir datos por el Socket el móvil se puede dormir, y aunque se despertará si recibe algo por el Socket, puede que no dure mucho, así que lo primero que deberías de hacer después de recibir algo es activar un WakeLock, y justo antes de quedar esperando a recibir algo desactivarlo. Por último, el servicio funcionará siempre, aunque no abras la app, pero al menos debes abrirla una vez (no puede existir un servicio sin Activity, como poder puede existir, pero nunca se activaría). Y si cierras la app desde la pulsación larga de Home el servicio seguirá funcionando, y siempre se activará cada vez que reinicies el móvil (si pones el BroadcastReceiver). Pero si vas a Opciones -> Aplicaciones y le das a "Forzar detención", tu servicio también se parará, y no se activará nunca más hasta que vuelvas a lanzar otra vez la app. Espero que te haya quedado todo claro. ![]()
__________________
BetaTester
Actualmente, SlimpLP+
|
|
#6
|
||||
|
||||
|
Si pudieramos hablar por MP, sería mas comodo
__________________
BetaTester
Actualmente, SlimpLP+
|
|
#7
|
||||
|
||||
|
Tendrías que crear un servicio y poner el código del Socket ahí, y un BroadcastReceiver que responda a ACTION_BOOT_COMPLETED para que siempre se lance el servicio cada vez que se inicie el móvil. Además el servicio debería ser START_STICKY, para que si el sistema decide matarlo que se vuelva a relanzar otra vez.
Ten en cuenta que mientras estás esperando a recibir datos por el Socket el móvil se puede dormir, y aunque se despertará si recibe algo por el Socket, puede que no dure mucho, así que lo primero que deberías de hacer después de recibir algo es activar un WakeLock, y justo antes de quedar esperando a recibir algo desactivarlo. Por último, el servicio funcionará siempre, aunque no abras la app, pero al menos debes abrirla una vez (no puede existir un servicio sin Activity, como poder puede existir, pero nunca se activaría). Y si cierras la app desde la pulsación larga de Home el servicio seguirá funcionando, y siempre se activará cada vez que reinicies el móvil (si pones el BroadcastReceiver). Pero si vas a Opciones -> Aplicaciones y le das a "Forzar detención", tu servicio también se parará, y no se activará nunca más hasta que vuelvas a lanzar otra vez la app. Espero que te haya quedado todo claro. ![]()
__________________
BetaTester
Actualmente, SlimpLP+
|
|
#9
|
||||
|
||||
|
Realmente tengo una RASPBERRY y cuando la temperatura sea mayor de X grados, quiero que me notifique, no tengo que hacer un bucle dentro del service?
__________________
BetaTester
Actualmente, SlimpLP+
|
|
#10
|
||||
|
||||
|
Solucionado, Gracias a los dos ^^
__________________
BetaTester
Actualmente, SlimpLP+
Última edición por MorSerNa Día 11/03/15 a las 19:19:45. |
|
#11
|
||||
|
||||
|
Marcamos como solucionado entonces
![]() Si quieres aportar algo más de información (algún comentario/explicación sobre como lo realizaste) no dudes en incluirlo
__________________
|
|
#12
|
||||
|
||||
|
Como bien explicó el compañero, el servicio y en el el socket. Mi error era por poner un Toast dentro del servicio, no se el porque.
__________________
BetaTester
Actualmente, SlimpLP+
|
![]() |
Estás aquí
|
||||||
|
||||||