2013-07-04 5 views
0

Я использую приложение Tasker для Android, и у меня возникли проблемы с получением цикла для работы. Я надеялся, что кто-то сможет дать некоторое представление, поскольку цикл представляет собой довольно простую концепцию программирования. Я предполагаю, что я просто упустил что-то определенное для синтаксиса Tasker.Android Tasker app looping script not looping

То, что я пытаюсь сделать:

Я пытаюсь написать скрипт, который играет звук и вибрирует в петле 3 раза. Я могу заставить его выполнить один раз, но он не будет зацикливаться.

То, что я пытался

До сих пор я пытался несколько вариаций на за и если петли, но я не могу показаться, чтобы получить часть цикла работает. Основная идея, которую я пытаюсь это:

  1. Создать счетчик и установить его на 0
  2. Открыть если заявление (я также пытался это как цикл) с условием, что счетчик меньше чем 3.
  3. Внутри петли воспроизводите звук и выполняйте вибрирующее действие.
  4. Увеличение счетчика на 1.
  5. Перейти к началу цикла.

Как я пытаюсь это

Как я уже говорил, я пробовал несколько различных способов, но это самая последняя попытка:

1. Variable Set 
%Counter, 0 

2. If 
%Counter < 3 

    3. Notify Sound 
    Sound 

    4. Vibrate 
    500 

    5. Variable Add 
    %Counter, 1 

    6. Goto 
    Action Number, 2 

7. End If 

Когда Я помещаю Flash там, я вижу, что счетчик увеличивается, но игнорирует часть Goto. Любые мысли или идеи будут оценены.

Update и решение

Основываясь на предложении от Энтони Аткинсон, я добавил Ожидать после звука/вибрируют части бежать, и что есть цикл работает. После нескольких исследований выяснилось, что мне нужно добавить Notify Cancel рядом с концом цикла, чтобы прояснить ситуацию. Я вижу, что значок удаляется из области уведомлений, когда он это делает.

Похоже, что Tasker видел что-то уже запущенное и пропустил его, когда он зациклился. Если кто-то лучше объяснит это, я был бы признателен за это.

В случае, если кто-то будет с той же проблемой я был, обновленный (и работает) скрипт выглядит следующим образом:

1. Variable Set 
%Counter, 0 

2. If 
%Counter < 3 

    3. Notify Sound 
    Sound 

    4. Vibrate 
    500 

    5. Variable Add 
    %Counter, 1 

    6. Wait 
    0, 3, 0 ,0 

    7. Notify Cancel 

    8. Goto 
    Action Number, 2 

9. End If 

ответ

0

Я только что начал с Tasker, но я был Android разработчик какое-то время. В большинстве случаев эти действия асинхронны, и вы можете делать все это на в то же время, не давая первому раунду достаточно времени для завершения. Другими словами, этот процесс может работать, если он блокирует, но может быть асинхронным. Может быть, попробуйте добавить время сна после каждого раунда? Скажем, 750 мс или что-то в этом роде, и посмотрим, что произойдет?

+0

Благодарим за предложение.Я попытался добавить 5-секундное ожидание между приращением счетчика и Goto, и отчасти это помогло. Он теперь петли три раза, но только вибрационные повторы. Звук воспроизводится только в первый раз. Я попробую добавить паузы в нескольких других местах и ​​посмотреть, что это делает. – Kalabakk

+0

Как долго звучит уведомление? –

+0

Это меньше секунды, поэтому он не будет проходить за 5 секунд паузы. Я добавил паузу в нескольких других местах, но она все равно воспроизводит звук только один раз. – Kalabakk