Ver Mensaje Individual
  #11  
Viejo 19/06/14, 03:44:44
Array

[xs_avatar]
Caravantes Caravantes no está en línea
Usuario muy activo
· Votos compra/venta: (1)
 
Fecha de registro: feb 2011
Mensajes: 2,200
Modelo de smartphone: Samsung Galaxy S9
Tu operador: Lowi
.
[Nota: este tema también está tratado en otro hilo, de forma casi idéntica: http://www.htcmania.com/showthread.p...9#post14151429 ]

 Cita: Originalmente Escrito por JulioVillamizar Ver Mensaje
estuve buscando por Internet y encontré la solución la comparto con todos ustedes
Genial, muchísimas gracias. Era un tema con el que estabamos bloqueados desde hace meses y por fin lo has resuelto.

Acabo de construir un pequeño perfil para comprobarlo.

Contexto de estado-orientación Plantado
Tarea de entrada llamada "PruebasPlantado"
- Detener tarea (de salida) "PruebasPlantadoNo"
- Decir "Plantado uno"
- Esperar 6 segundos
- Decir "Plantado dos"
Tarea de salida llamada "PruebasPlantadoNo"
- Detener tarea (de entrada) "PruebasPlantado"
- Decir "Plantado NO uno"
- Esperar 6 segundos
- Decir "Plantado NO dos"

Efectivamente funciona como has dicho: Si desactivo la casilla Fuerza Orden Tareas (en las propiedades de un perfil de estado), en la tarea de entrada ya funciona la acción DETENER "tarea de salida" y en la tarea de salida ya funciona la acción DETENER "tarea de entrada". Con esa casilla marcada (opción por defecto) las acciones de tipo DETENER-la-tarea-contraria no tenían efecto alguno.

Hay algo más, relativo al órden en que se ejecutan las tareas y sus acciones. He quitado las acciones DETENER TAREA para observar lo que ocurre con las tareas si no se producen esas interrupciones.

Teniendo activada la opción Fuerza Orden Tareas ocurre lo siguiente:
Al activarse el contexto se inicia la tarea de entrada y dicha tarea se continúa normalmente hasta su finalización. Si el contexto deja de cumplirse mientras se ejecuta la tarea de entrada, esa tarea continuará ejecutándose hasta terminar; entretando, la tarea de salida habrá sido puesta en cola para ejecutarse cuando termine la tarea de entrada. Igualmente, si se está ejecutando la tarea de salida y de nuevo el contexto vuelve a activarse, la tarea de entrada vuelve a ponerse en cola, y así sucesivamente... pero con un límite: Por las pruebas que he hecho, si el contexto cambia dos veces, la tarea que se está ejecutando no vuelve a ponerse en cola tras la tarea contraria, solo puede haber una tarea ejecutándose y la opuesta en espera, la cola no admite más tareas pendientes de ejecución. Esto explica por qué no funciona la acción de tipo DETENER-la-tarea-contraria: la explicación es que nunca se ejecutaban ambas tareas al mismo tiempo; cuando le llega el turno a esa acción la tarea contraria no se está ejecutando, y por tanto no hay nada que detener.

Ahora bien, si desactivamos la casilla Fuerza Orden Tareas , ocurrirá lo siguiente:
Al activarse el contexto se inicia la tarea de entrada y dicha tarea se continúa normalmente hasta su finalización. Si el contexto deja de cumplirse mientras se ejecuta la tarea de entrada, la tarea de salida no se pone en cola sino que también comienza a ejecutarse aunque no haya finalizado la tarea de entrada: ambas tareas se ejecutan por turnos: una acción de cada una. Del mismo modo, si la tarea de salida está en ejecución y se reactiva el contexto ocurrirá que la tarea de entrada comenzará a ejecutarse (en paralelo) aunque la tarea de salida no haya finalizado. Esta ejecución en paralelo es la que posibilita que una acción de tipo DETENER-la-tarea-contraria pueda funcionar.

Más información (en inglés: Enforce Task Order) en el siguiente hilo: https://groups.google.com/forum/#!topic/tasker/qInYbV1L2Jo

Julio, nuevamente gracias por ayudarnos con este importante tema.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Responder Con Cita
Gracias de parte de: