Ho fatto un'app che utilizza l'elemento clock di app inventor.
l'avevo creata, testata, con htc magic ( rom Padron Froyo 2.2 )
Nessun problema, nonostante sul web tutti lamentassero l'interruzione del ciclo CLOCK non appena il display andava in standby,
sul mio magic ( senza caricabatterie collegato, senza il flag su DISPLAY SEMPRE ACCESO nell'area IMPOSTAZIONI APP -> SVILUPPO) il timer continuava a funzionare a schermo spento e l'app eseguiva la sua funzione: inviare SMS.
Ieri ho acquistato un Nexus S, e ho voluto provare li la mia app. Ho notato che il timer funziona SOLO a display acceso, anche in background...ma solo a display acceso. Non appena spengo io il display o si spegne da solo per timeout, il timer si blocca.
l'altro telefono che dovrebbe ricevere sms; non riceve niente.
Non appena riaccendo il display, e torno nell'app....vedo che il timer riprende a conteggiare dal secondo dove si era fermato prima che si spegnesse.
A cosa è dovuta questa differenza?
Il magic ha una custom rom con qualche kernel modificato? mentre il nexus essendo Ginger STOCK ha delle limitazioni?
O con ginger, google ha fatto modifiche che interrompono il timer, e magari non c'erano in froyo? magari per risparmiare il processore e batteria...
Questa mia app è sul market, e ho un pò di utenti che la usano giornalmente, con vari telefoni gingerbread. ma nessuno ha mai segnalato questo problema....e dubito che tutti stiano col tel a display acceso durante l'invio di numerosi sms...con intervalli di tempo che possono portare un ciclo completo di invii, a una durata di 1ora o più....
Cercando su google, pare che questa sia una limitazione della funzione CLOCK di app-inventor...O per meglio dire, una NON IMPLEMENTAZIONE per far si che anche a display spento, il clock continui.
Ma se su magic, il clock continua a funzionare, ci sarà un motivo?
qui dice
Basic Components - App Inventor for Android
credo che le parti evidenziate in rosso, siano quelle che interessano il mio problema.Clock
Use a clock component to create a timer that signals events at regular intervals. The clock component also does various conversions and manipulations with time units.
One use of the clock component is a a timer: set the timer interval, and the timer will fire repeatedly at the interval, signalling a timer event.
A second use of the clock component is to manipulate time, and express time in various units. The internal time format used by the clock is called an instant. The clock's Now method returns the current time as an instant. The clock provides methods to manipulate instants, for example, return an instant that is several seconds, or months, or years from the given instant. It also provides methods to show the second, minute, hour, day, …, corresponding to a given instant.
Properties
TimerInterval timer interval in milliseconds
TimerEnabled If true, then the timer will fire
TimerAlwaysFires if true, the timer will fire even if the application is not showing on the screen
So che per voi che programmate veramente, appinventor fa schifo, ma credo che l'elemento clock sia presente e usabile anche da chi programma alla maniera standard.
qualcuno può tradurre bene ?