Я использую приложение Tasker для Android, и у меня не получается заставить работать цикл. Я надеялся, что кто-то сможет дать некоторое представление, поскольку цикл - это довольно простая концепция программирования. Я предполагаю, что мне просто не хватает чего-то особенного в синтаксисе Tasker.
Что я пытаюсь сделать:
Я пытаюсь написать сценарий, который воспроизводит звук и 3 раза зацикливается. Я могу заставить его выполнить один раз, но он не будет зацикливаться.
Что я пробовал
До сих пор я пробовал несколько вариантов как для циклов for, так и для циклов if, но, похоже, я не могу заставить часть цикла работать. Основная идея, которую я пробую:
- Создайте счетчик и установите его на 0
- Откройте оператор if (я также пробовал его как цикл for) с условием, что счетчик меньше 3.
- Внутри петли воспроизведите звук и выполните вибрирующее действие.
- Увеличьте счетчик на 1.
- Снова перейдите к началу цикла.
Как я это пытаюсь
Как я уже упоминал, я пробовал это несколькими способами, но это самая последняя попытка:
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. Любые мысли или идеи будут оценены.
Обновление и решение
Основываясь на предложении Энтони Аткинсона, я добавил ожидание после запуска звуковых / вибрирующих фрагментов, и это заставило цикл работать. После некоторых дополнительных исследований выяснилось, что мне нужно добавить уведомление об отмене ближе к концу цикла, чтобы прояснить ситуацию. Я вижу, что значок удаляется из области уведомлений, когда это происходит.
Похоже, 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
1 ответ
Я только начал работать с Tasker, но какое-то время был разработчиком Android. В большинстве случаев эти действия являются асинхронными, и на самом деле вы можете выполнять все их в одно и то же время , не давая первому раунду достаточно времени для завершения. Другими словами, этот процесс мог бы работать, если бы он был блокирующим, но он может быть асинхронным. Может быть, попробовать добавить время сна после каждого раунда? Скажем, 750 мс или что-то в этом роде, и посмотрим, что произойдет?
Похожие вопросы
Новые вопросы
android
Android — это мобильная операционная система Google, используемая для программирования или разработки цифровых устройств (смартфонов, планшетов, автомобилей, телевизоров, одежды, очков, IoT). Для тем, связанных с Android, используйте теги, специфичные для Android, такие как android-intent, android-activity, android-adapter и т. д. Для вопросов, отличных от разработки или программирования, но связанных с Android framework, используйте эту ссылку: https://android .stackexchange.com.