Hola a todos. Estoy tratando de hacer un taxímetro simple. Para iniciar intente crear un cronometro simple. En otras palabras un programa que muestra el avance del tiempo en segundos.
El programa presenta 2 problemas:
Pero el servicio se ejecuta cada 2 o 3 segundos. A veces parece acelerar y a veces enlentecer.
El equipo en el que ejecuto el programa es un Huawei P9 Lite con procesador Cortex A53 de 4 núcleos y con una velocidad cada uno de 2 GHz, todas las aplicaciones cerradas y el modo de ahorro de energía deshabilitado. Ninguna aplicación ejecutándose en segundo plano. Todas las aplicaciones instaladas funcionan suavemente, con fluidez y sin problemas.
El código del modulo principal es:
El código del servicio es:
Adjunto el proyecto en un .Zip para el que desee darle una mirada.
De antemano agradezco su valiosa ayuda.
El programa presenta 2 problemas:
- El primer problema es que el servicio encargado de contar los segundos se ejecuta al iniciar la aplicación. No sé si es normal o no debería suceder.
- El segundo problema es que el servicio se ejecuta muy lento.
B4X:
StartServiceAt("", DateTime.Now + 1 * DateTime.TicksPerSecond, True)
Pero el servicio se ejecuta cada 2 o 3 segundos. A veces parece acelerar y a veces enlentecer.
El equipo en el que ejecuto el programa es un Huawei P9 Lite con procesador Cortex A53 de 4 núcleos y con una velocidad cada uno de 2 GHz, todas las aplicaciones cerradas y el modo de ahorro de energía deshabilitado. Ninguna aplicación ejecutándose en segundo plano. Todas las aplicaciones instaladas funcionan suavemente, con fluidez y sin problemas.
El código del modulo principal es:
B4X:
#Region Project Attributes
#ApplicationLabel: CronoSimple
#VersionCode: 1
#VersionName:
'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: unspecified
#CanInstallToExternalStorage: False
#End Region
#Region Activity Attributes
#FullScreen: False
#IncludeTitle: True
#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 Temporizador As Timer
Dim Secs As Int
End Sub
Sub Globals
'These global variables will be redeclared each time the activity is created.
'These variables can only be accessed from this module.
Private Label1 As Label
Private ButtonStart As Button
End Sub
Sub Activity_Create(FirstTime As Boolean)
'Do not forget to load the layout file created with the visual designer. For example:
Activity.LoadLayout("main")
Temporizador.Initialize("Timer1", 1000)
Temporizador.Enabled = True
End Sub
Sub Activity_Resume
Secs = 0
Label1.Text = "Secs: "
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub Timer1_Tick
Label1.Text = "Secs: " & Secs
End Sub
Sub ButtonStart_Click
Try
StartActivity(Starter)
Catch
Log(LastException)
End Try
End Sub
El código del servicio es:
B4X:
#Region Service Attributes
#StartAtBoot: False
#ExcludeFromLibrary: True
#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 Segundos As Int
End Sub
Sub Service_Create
'This is the program entry point.
'This is a good place to load resources that are not specific to a single activity.
End Sub
Sub Service_Start (StartingIntent As Intent)
StartServiceAt("", DateTime.Now + 1 * DateTime.TicksPerSecond, True)
Segundos = Segundos + 1
Main.Secs = Segundos
End Sub
Sub Service_TaskRemoved
'This event will be raised when the user removes the app from the recent apps list.
End Sub
'Return true to allow the OS default exceptions handler to handle the uncaught exception.
Sub Application_Error (Error As Exception, StackTrace As String) As Boolean
Return True
End Sub
Sub Service_Destroy
End Sub
Adjunto el proyecto en un .Zip para el que desee darle una mirada.
De antemano agradezco su valiosa ayuda.
Attachments
Last edited: