Italian Doppia notifica (B4A - Notification object)

Valentino.b

Member
Ciao a tutti

ho creato un servizio che verifica che data/ora dello smartphone siano aggiornati.

Ad un certo punto nel codice avvio il servizio
B4X:
StartService(ServizioDataOra)
e nell'area notifiche non ho nessun messaggio.
Screenshot_20210701-184854.png


Se il servizio trova delle diversità tra data/ora locale e quella "reale", avvia una notifica all'utente
B4X:
Service.StartForeground(nid, ShowMessage())

Sub ShowMessage() As Notification
    Dim n As Notification
    n.Initialize
    n.Vibrate=False
    
    n.Icon = "icon"
    n.AutoCancel=True 'dovrebbe cancellare la notifica
    
    n.SetInfo2("Titolo notifica", "Testo notifica", "NotificaCliccata", Main)
    n.Notify(1)
    
    Return n
End Sub
ma nell'area notifiche la notifica è doppia
Screenshot_20210701-185023.png



Una di queste (la prima) la riesco a rimuovere (scorrendo con il dito verso destra) mentre la seconda non scorre, si blocca a metà visualizzando l'ingranaggio.
Screenshot_20210701-190531.png

Da cosa dipende questo comportamento?


Ho fatto un ulteriore tentativo. Dopo la visualizzazione della notifica ho fermato il servizio.
B4X:
Service.StartForeground(nid, ShowMessage("Titolo notifica", "Testo notifica", ""))

StopService(Me)
Il risultato è
B4X:
** Service (ServizioDataOra) Destroy **

In effetti quel secondo tipo di notifica (quella che non scorre) non compare più e viene visualizzata solo la prima notifica, cliccando sulla quale viene riportata in primo piano l'APP.
In effetti è questo il comportamento che mi aspetterei.

A questo punto però il servizio non è più attivo, avendolo distrutto. Quindi non verrà piu' verifica la data/ora di sistema.
Come mai compaiono due notifiche se da codice ne dovrei aver avviata una sola?
Quale dovrebbe essere il modo corretto di gestire le notifiche?

Grazie anticipatamente
 
Top