estoy desarrollando una aplicación de Android para mostrar notificaciones. ¿Cómo puedo sondear un servicio web en un intervalo finito (por ejemplo, un intervalo de 10 minutos) para comprobar si hay alguna actualización y mostrarla como notificación en el panel de notificaciones de Android.Cómo sondear un servicio web en un intervalo finito desde android?
Respuesta
Usted no necesita un servicio. Me siento como un disco roto. En este caso de uso, un servicio se sentará allí el 95% del tiempo sin hacer nada, pero aún utilizando los recursos del sistema y, lo que es más importante, drenará la batería.
Véase mi respuesta en una pregunta similar que utiliza una alarma de la AlarmManager:
Running task periodicaly(once a day/once a week)
Editar:
mirada a este tutorial desde el sitio de desarrollo de Android para la forma de aplicar las notificaciones: http://developer.android.com/guide/topics/ui/notifiers/notifications.html
Define un servicio, que tiene un hilo con un temporizador, en el tiempo de espera invoque el servicio web.
mismo comentario que a continuación. – njzk2
temporizador de uso en los que se puede llamar a ese servicio web después de intervalo finito de e.x
Timer waitingTimer = new Timer();
waitingTimer.schedule(new TimerTask()
{
@Override
public void run()
{
runOnUiThread(new Runnable()
{
public void run()
{
// code to hit xml after time interval
}
});
}
},0,20000); // mention time interval after which your xml will be hit.
Aquí 20000 medios después de cada 20 segundos que se verán afectados.
un hilo definitivamente no es el camino a seguir para esto en Android. Se quedará allí en la memoria sin hacer nada, eso no es bueno. use alarmmanager en su lugar – njzk2
Hay un servicio de mensajería de nube a dispositivo proporcionado por Google C2DM. Puede usar este servicio para enviar mensajes a todos los dispositivos móviles registrados. Esto no solo mejora el rendimiento sino que también garantiza que la batería no se agote mientras se realiza una encuesta continua del servidor.
Para su escenario, puede escribir en una clase java para sondear regularmente el servicio web y usar el servicio C2DM para enviar el mensaje a su teléfono Android que se puede mostrar como una notificación. Mira este tutorial de Vogella en link. O mejor, si está utilizando el servicio web solo para obtener detalles actualizados, puede evitar el servicio web y llamar directamente al Servicio de inserción de C2DM para enviar mensajes a todos los dispositivos registrados cada vez que haya un cambio.
Espero que esto haya ayudado. :)
Para futuros buscadores: C2DM ha sido desaprobado y reemplazado por GCM: http://developer.android.com/guide/google/gcm/index.html; Guía de migración: http://developer.android.com/guide/google/gcm/c2dm.html – paul
Para futuras referencias futuras, GCM ahora es FCM (Firebase Cloud Messaging). Aquí hay una guía de migración: https://developers.google.com/cloud-messaging/android/android-migrate-fcm –
- 1. ¿Cómo llamar a un servicio web .NET desde android?
- 2. Cómo enviar una imagen desde un servicio web en Spring
- 3. ¿Cómo imprimo un documento HTML desde un servicio web?
- 4. Llamar a un servicio web desde C++
- 5. cómo llamo a un servicio web usando phonegap para android
- 6. llamar a un servicio web externo desde un servlet
- 7. ¿Cómo acceder a un servicio web PHP desde ASP.Net?
- 8. Cómo consumir fácilmente un servicio web desde PHP
- 9. Cómo devolver JSON desde un servicio web 2.0 asmx
- 10. Cómo llamar asincrónicamente un servicio web desde una aplicación ASP.NET?
- 11. Cómo llamo a un servicio web desde javascript
- 12. ¿Cómo acceder a un servicio web desde powershell?
- 13. Cómo llamar a un servicio web desde jQuery
- 14. ¿Es un servicio WCF un servicio web?
- 15. ¿Es un servicio web o un servicio web?
- 16. ¿Garantizar un servicio web?
- 17. ¿Cómo asegurar un servicio web en .net?
- 18. ¿Cómo creo un servicio web en IronPython?
- 19. ¿Cómo implementar FileObserver desde un servicio de Android?
- 20. Cómo llamar a un servicio web local desde una aplicación móvil Android
- 21. ¿Cómo llamar a un servicio web de PHP desde Android utilizando KSOAP2?
- 22. Accediendo a un servicio web desde su navegador
- 23. Enviar una notificación desde un servicio en Android
- 24. Simplemente consumiendo un servicio web en Java
- 25. Cómo devolver JSON desde el servicio web
- 26. ¿Cómo iniciar un servicio de Android desde una actividad y detener el servicio en otra actividad?
- 27. Consumir servicio web desde un archivo DLL .NET - app.config problema
- 28. Llamar a un servicio REST Web asegurado con Spring Security desde Android
- 29. requestLocationUpdates intervalo en Android
- 30. Cómo invocar un servicio web utilizando Java
sí. esa es la forma correcta. – njzk2
Graham, entonces habrá una aplicación .apk dedicada solo para mostrar la notificación ??? –
Puede poner todo su código en el proyecto individual y desplegarlo como un único APK. –