Spanish notificación por cada registro en BD

ebqlabs

Active Member
Licensed User
Hola tengo una duda.

por ahora tengo un Servicio y estoy preguntando cada 1 minutos si tengo un nuevo registro, si es así mando la notificación. Esto no lo quiero realizar, porque me gasta todo el salgo del móvil

Como lo puedo realizar para que no sea el móvil preguntado cada 30 segundos si hay un nuevo registro?
si no que sea como los mensajes de texto, algo como realizar un ping!

Le mando mi código

B4X:
#Region  Service Attributes
    #StartAtBoot: true
    #StartCommandReturnValue: android.app.Service.START_STICKY
#End Region

Sub Process_Globals
    Dim json As JSONParser

    Dim mapaNotificacion As Map

End Sub
Sub Service_Create

End Sub

Sub Service_Start (StartingIntent As Intent)
 
    Dim h As HttpJob

 
    h.initialize("json1", Me)
    h.Download2("http://www.xxx", Array As String("iNumSer", "0", "iMovDes", "120"))
 
    StartServiceAt("", DateTime.Now + 30 * DateTime. TicksPerSecond, True)

End Sub

Sub Service_Destroy

End Sub


Sub JobDone(job As HttpJob)
    If job.Success Then
        json.Initialize(job.GetString)
        mapaNotificacion=json.NextObject 
     
        Dim data As List
        data=mapaNotificacion.Get("data")
 
        Dim avs_ndt As Int
        avs_ndt = "0"
        For i=0 To data.Size-1
            mapaNotificacion=data.Get(i)
         
            avs_ndt = (mapaNotificacion.Get("tsp_avs_ntf"))
        Next
     
        If avs_ndt = "1" Then
                Dim n As Notification
                n.Initialize
                frm_srv_acp.VariablePedido = (mapaNotificacion.Get("tsp_num_ser"))
                n.SetInfo("Servicio", mapaNotificacion.Get("tsp_num_ser"), frm_srv_acp)
                n.Icon = "icon"
                n.Notify(mapaNotificacion.Get("tsp_num_ser"))
        End If
        avs_ndt = "0"
    Else
        Msgbox(job.ErrorMessage, "Error")
    End If
End Sub

saludos
 

inakigarm

Well-Known Member
Licensed User
Longtime User
El servidor lo controlas tú (es un VPS) o accedes a información en un servidor externo ??

Si es el primer caso, puede que te sea útil modificar el sistema de comunicación entre servidor y cliente (y la aplicación) para que en lugar de que sea el cliente el que consulta cada 30 segundos, sea el servidor el que te notifique los cambios via GCM con notificaciones Push, con MQTT (B4J servidor y cliente),etc..
 

ebqlabs

Active Member
Licensed User
Gracias por tu respuesta.

Si, el servidor es un VPS

Pero, no entendí el tema de notificar por GCM con notificaciones Push, con MQTT (B4J servidor y cliente),etc..
 

inakigarm

Well-Known Member
Licensed User
Longtime User
Lo que quería decir es que sea el servidor el que indique al cliente (la app en el móvil) cuando hay un nuevo registro y no al revés (lo comento por lo que decías del saldo del móvil); podrías hacerlo con notificaciones Push con GCM, con MQTT puedes encontrarlo si haces una búsqueda en el foro), pero has de pensar que te supondrà un rediseño de la parte de comunicación cliente-servidor.
 

ebqlabs

Active Member
Licensed User
Gracias, tendré que realizar un nuevo proyecto para entender sobre los Push con GCM.

Realmente esta todo en ingles, no entiendo.

Si alguien que tenga un proyecto de ejemplo o algún tutorial es español ?
 
Last edited:

ebqlabs

Active Member
Licensed User
Gracias por todo. Pero no entiendo los pasos del primer link.
No es muy entendible real izarlo
 
Top