Italian Timer e service

Luigi S

Active Member
Licensed User
Ho un'activity in cui ho inserito un timer per far "flashare" un btn e con il quale faccio anche fare dei calcoli ricorsivi.
Finchè sto sull'emulatore è tutto ok, ma trasferendo l'app sul device fisico, quando l'activity va in pause il timer si ferma, per riprendersi quando l'activity va in resume.
E questo voi lo sapevate già... :))
Quindi ho indagato un po' e ho scoperto l'esistenza dei service che servono appunto per "andare in background" ....e pure questo lo sapete già... :))
Ho letto decine di discussioni (in inglese che non è il mio forte) ma ho le idee molto confuse....
Ho bisogno di qualche suggerimento a discussioni o qualche esempio da seguire che mi schiarisca un po la faccenda.
 

LucaMs

Expert
Licensed User
Longtime User
Non ricordo se il timer si fermi quando l'Activity vada in pausa; penso di no, visto che in questa prova con B4XPages non lo fa.


P.S. Eh sì, si ferma. Beh, con le B4XPages (allegato) no, prosegue e quindi non ti "servono servizi" :)


EDIT: che razza di progetto avevo allegato? Vuoto? Correggo!
 

Attachments

  • TimerTest.zip
    13.7 KB · Views: 169
Last edited:

Luigi S

Active Member
Licensed User
Se ho capito bene è tutto un'altro modo di impostare la cosa, ci sarà solo una mainActivity ed poi una serie di B4XPages che vanno a sostituire le varie activity.
Dico bene?
 

LucaMs

Expert
Licensed User
Longtime User
Se ho capito bene è tutto un'altro modo di impostare la cosa, ci sarà solo una mainActivity ed poi una serie di B4XPages che vanno a sostituire le varie activity.
Dico bene?
Sì, dici bene. Non è obbligatorio avere una sola Activity ma è la cosa migliore.

Le B4XPage non sono altro che classi che di base contengono un Panel di nome Root nel quale caricherai i layout (o anche le View da codice, volendo, ma meglio di no) invece che caricarli nell'Activity.

Insomma, non è affatto un passaggio traumatico.
 

Luigi S

Active Member
Licensed User
OK considerando che la mia app è di sole due activity non è una cosa difficile, ma non per me! :))
Ma pian piano conto di riuscirci! Grazie!
 

Luigi S

Active Member
Licensed User
Fatto! E'stato più facile di quello che pensavo, GRAZIE ancora di avermi fatto sperimentare un nuovo mondo!
 

Luigi S

Active Member
Licensed User
Ho cantato vittoria troppo presto...
Testando l'app sul telefono, il timer funziona se si passa ad altre app, e lo schermo rimane acceso, non appena si spegne lo schermo per inutilizzo, il timer si ferma.
Mi rendo conto che ci sono cose fondamentali tipo questa che non so, pensavo che le due situazioni facessero parte dello stesso "stato", ma così non è.
Consigli?
 

LucaMs

Expert
Licensed User
Longtime User
Consigli?
Intanto consiglio a me stesso di fare più attenzione, magari dormire anche un po', visto che ti avevo allegato un progetto praticamente vuoto (post #2) 😄 :confused: - Ho "corretto", allegato il progetto giusto.

Testando l'app sul telefono, il timer funziona se si passa ad altre app, e lo schermo rimane acceso, non appena si spegne lo schermo per inutilizzo, il timer si ferma.
Non è esatto. La tua app è stata uccisa dal sistema operativo perché l'hai lasciata troppo tempo in background.
Voglio dire che il timer continuerà a funzionare anche quando lo schermo si spegnerà ma non per sempre, finché il S.O. si sarà stancato e ucciderà l'app.

Quindi, la soluzione B4XPages - Timer funziona. Per evitare che un'app venga uccisa dal S.O., però, a prescindere se l'app sia stata sviluppata con B4XPages o meno, l'unico modo è quello suggerito da Erel in questo esempio:

Background location tracking

(che utilizza un modulo di servizio e qualche accorgimento).
 
Last edited:
Top