|
|
|
|
- Modo de funcionamiento
- Manejar las tareas de Background
- Características específicas de Android
- Funciones específicas para iOS
BackgroundTaskAdd( Función) Añade una nueva tarea de Background. Esta tarea se realizará periódicamente cuando se detenga la aplicación o cuando se esté ejecutando en el Background. // Asks to process the incoming emails once a day BackgroundTaskAdd(ProcBackgroundEmailProcess, 24*60)
PROCEDURE ProcBackgroundEmailProcess() // Process the pending emails n is int = ProcessIncomingEmails() IF n > 0 THEN // Notifies the user notif is Notification notif.Title = "Process completed" notif.Message = StringBuild("%1 emails have been processed", n) NotifAdd(notif) END
Sintaxis
<Result> = BackgroundTaskAdd(<WLanguage procedure> [, <Time interval>])
<Result>: Integro - Identificador de la tarea añadida,
- 0 si se produce un error. Para obtener más información sobre el error, utilice la función ErrorInfo.
<WLanguage procedure>: Nombre de Procedure WLanguage Procedure ("callback" Procedure) llamado al ejecutar la tarea. Este Procedure debe ser un Procedure global de proyecto y no debe esperar ningún parámetro. De lo contrario, se producirá un error fatal al llamar a la función BackgroundTaskAdd. <Time interval>: Entero opcional Tiempo mínimo interval (expresado en minutos) entre dos ejecuciones de tareas. Se utiliza para garantizar que la tarea no se ejecutará durante este tiempo interval. Sin embargo, el sistema puede aumentar el tiempo de interval de acuerdo con varios factores (carga de trabajo importante, batería baja, etc.). Por lo tanto, el tiempo real interval puede cambiar y puede ser bastante largo (varias horas). Por Default: - el tiempo interval entre dos ejecuciones de tareas es set a 1 hora.
- el tiempo mínimo que interval permite es set a 15 minutos.
Este parámetro puede corresponder a: - un número entero correspondiente al número de minutos,
- una variable de tipo Duration,
- la duración en un formato legible (por ejemplo, "20min").
Observaciones Modo de funcionamiento Una vez añadida, la tarea de fondo es ejecutada automáticamente por el sistema a tiempo regular interval. La tarea es persistente, continuará ejecutándose periódicamente cuando se detenga la aplicación, incluso cuando se reinicie el dispositivo.. Si la tarea se lanza mientras la aplicación no está iniciada, la aplicación se ejecutará en segundo plano (sin abrir la primera ventana del proyecto), la inicialización Process del proyecto y la declaración Process de las clases y conjuntos de Procedure s se ejecutarán antes de llamar al Procedure associated con la tarea. La tarea se ejecutará cuando la aplicación no se inicie o cuando la aplicación esté en Background. Si la aplicación se muestra en primer plano, se aplazará su ejecución. Como la tarea puede ejecutarse en un hilo secundario de la aplicación, el código del lenguaje WL Procedure no debe contener un acceso a la UI de la aplicación ni abrir cuadros de diálogo (mediante Info, Error, etc.). Si la tarea debe interactuar con los usuarios, puede utilizar las notificaciones ( Funciones de Notifxxx). Manejar las tareas de Background - Para eliminar una tarea agregada con la función BackgroundTaskAdd, utilice la función BackgroundTaskDelete.
- Para listar las tareas Background añadidas, utilice BackgroundTaskList.
- InBackgroundMode se utiliza para saber si un procedure se ejecuta en modo "background" o no.
- Desde el editor, se puede especificar que un Procedure debe ser ejecutado en una tarea de fondo habilitando la opción correspondiente desde la ventana de configuración de la automatización de Procedure. La tarea se añadirá automáticamente durante el siguiente inicio de la aplicación.: En este caso, no es necesario llamar a BackgroundTaskAdd.
Clasificación Lógica de negocio / UI: Lógica de negocio Componente: wd290android.jar
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|