Italian Creare una notifica dopo un certo tempo

SSDM71

Active Member
Licensed User
Longtime User
Ho creato tipo un service che lo avvio io manualmente premendo un bottone e dentro ho messo un timer per controllare il tempo trascorso e quando arriva a un certo tot far comparire una notifica.. c'è un problema però.. non funziona :D
Quindi vorrei qualche vostro consiglio su come fare !

Grazie,
 

Straker

Active Member
Licensed User
Longtime User
...se magari posti un pezzo di codice (magari la sub del timer dove chiami la notifica...)
 

SSDM71

Active Member
Licensed User
Longtime User
B4X:
#Region  Service Attributes
    #StartAtBoot: False
#End Region
 
Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.
    Dim tmr As Timer
    Dim tempo As Int
    Dim n As Notification
End Sub
Sub Service_Create
    tmr.Initialize("tmr","1000")
End Sub
 
Sub Service_Start (StartingIntent As Intent)
    tmr.Initialize("tmr","1000")
End Sub
Sub tmr_Tick
    tempo=tempo+1
    If tempo=60 Then
        n.Initialize
        n.Icon="icon"
        n.SetInfo("titolo","body","Main")
        n.Notify(23)
    End If
End Sub
Sub Service_Destroy
 
End Sub
Questo è il codice del servizio.. cosa dovrei modificare per farlo funzionare? grazie
 

SSDM71

Active Member
Licensed User
Longtime User
B4X:
#Region  Service Attributes
    #StartAtBoot: False
#End Region
 
Sub Process_Globals
    Dim lettura As TextReader
    Dim titolo,body As String
    Dim n As Notification
End Sub
Sub Service_Create
    StartServiceAt("", DateTime.Now + 100000, True)
End Sub
 
Sub Service_Start (StartingIntent As Intent)
        lettura.Initialize(File.OpenInput(File.DirInternal,"titolo.txt"))
        titolo = lettura.ReadAll
        lettura.Close
        lettura.Initialize(File.OpenInput(File.DirInternal,"body.txt"))
        body = lettura.ReadAll
        lettura.Close
        n.Initialize
        n.Icon="icon"
        n.SetInfo(titolo,body,"Main")
        n.Notify(23)
End Sub
 
Sub Service_Destroy
 
End Sub

Ok sono arrivato a questo punto. Il problema sta che quando il servizio si avvia e fa la sub service_create e la sub service_start in contemporanea... come posso modificare?
 

Straker

Active Member
Licensed User
Longtime User
E' logico che che le faccia entrambe.
Quando nella tua activity principale esegui il StartService il servizio viene prima creato (e ti fa il Service_Create, il quale programma il prossimo start a 100 secondi da adesso) e poi ti fa lo Start come richiesto da StartService.

Se non vuoi lo Start immediato basta che sostituisce il tuo ServiceStart (immediato) con un StartServiceAt dicendogli quando deve partire.

Immagina il tuo servizio come un pezzo di codice che fa qualcosa e poi 'muore' fino a quando non viene riattivato dalla schedulazione che hai inserito in StartServiceAt.
 

Straker

Active Member
Licensed User
Longtime User
Premesso che non ho familiarità con i "servizi", penso che tu debba mettere il ServiceStartAt all'interno del Service_Start (suona strano, ma mi pare di capire così)

Oooops! Verissimo. Altrimenti te ne schedula solo 1 quando il servizio viene creato.
Mettendolo nello Start viene rischedulato ogni volta che riparte.
Ma c'è una parola più italiana al posto di 'schedulare' che è un pessimo anglismo?
 
Top