sto realizzando un cronometro, ma non riesco a far funzionare i millisecondi e non capisco dove sbaglio:
B4X:
Globals
Dim cronometro As Timer
Dim s, ms as int
End Sub
Sub Activity_Create(FirstTime As Boolean)
cronometro.Initialize("cronometro", 0,100)
End Sub
Sub cronometro_Tick
If ms=59 Then
ms=0
s=1
Else
ms=ms+1
lbCronometro.Text=s&":"&ms
End If
End Sub
Va ho provato a mette al posto di 100, 10 e 1 ma sempre troppo veloce rispetto a un vero millisecondo.
L'ho testato sul mio cell e funziona (anche semplicemente mettendo 1), il fatto che mi ha tratto in inganno e che sull'emulatore non funziona correttamente.
Allora hop fatto un po' di prove sia con B4 che con BJ.
Con BJ Funziona Perfettamente forse il pc gestisce meglio ma!!!!
Con B4 i millisecondi calcolati con un timer aumentano leggermente e dipende anche se il telefono e sotto carico do lavoro!
vi allego l'esempio!
Avevo già letto una domanda del genere e, compatibilmente con la mia memoria, in esso si diceva che non si può ottenere una precisione al millisecondo.
Come minimo 40ms, se non ricordo male.
Cerca nel sito.
Anche per questo... ho letto troppo e confondo. Mi sembra che non sia possibile cambiare la priorità di un processo.
Potresti provare con un servizio che parta al boot.
(l'esempio che hai postato, per adesso non posso provarlo, hai una versione più recente di B4A. Devo rifare il progetto e copiare il codice).
Ci avevo pensato, ma non sapendo come fare ho provato con il timer, ma ho visto che non è proprio affidabile,. Dato che a me serve una certa precisione anche nei millisecondi, vorrei farei come mi hai consigliato.
Per caso sai come poter visualizzare i ms presi dalla data del sistema (come se fosse un timer)?
Gli ho dato un'occhiata e mi sembra che sia impossibile mostrare anche i millisecondi (che razza di crono è uno che mostra al massimo i secondi?!?!).
Intatti, c'è una proprieta Format per la view Chrono, ma può solo mostrare HH:MM:SS.
Adesso provo a "ricostruire" la tua app, adattandola per la mia versione di B4A. Suderò un po', ma la soluzione te la trovo
PER IL MOMENTO, STO LEGGENDO; I TIMER VANNO DICHIARATI NELLA PROCESS_GLOBALS, NON NELLA GLOBALS