Android Tasker应用程序循环脚本不循环

时间:2013-07-04 00:59:56

标签: android

我正在使用适用于Android的Tasker应用程序,但我无法使循环工作。我希望有人可以提供一些见解,因为循环是一个相当简单的编程概念。我猜我只是缺少特定于Tasker语法的东西。

我正在尝试做什么:

我正在尝试编写一个播放声音并在循环中振动3次的脚本。我可以让它执行一次,但它不会循环。

我尝试了什么

到目前为止,我已经尝试了for和if循环的一些变体,但我似乎无法使循环部分工作。我正在尝试的基本想法是:

  1. 创建一个计数器并将其设置为0
  2. 打开一个if语句(我也尝试过它作为for循环),条件是计数器小于3.
  3. 在循环中,播放声音并执行振动动作。
  4. 将计数器增加1。
  5. 再次转到循环的开始。
  6. 我是怎么做的

    正如我所提到的,我尝试了几种不同的方式,但这是最近的尝试:

    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部分。任何想法或想法将不胜感激。

    更新和解决方案

    根据Anthony Atkinson的建议,我在声音/振动片段运行后添加了一个等待,这让循环工作。经过一些研究后,似乎我需要在循环结束时添加一个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
    

1 个答案:

答案 0 :(得分:0)

我刚开始使用tasker,但我已经成为Android开发人员了一段时间。大多数情况下,这些操作是异步的,您可能实际上是在同时完成这些操作,而没有给第一轮足够的时间来完成。换句话说,如果它是阻塞的,这个过程可能会起作用,但它可能是异步的。也许尝试在每轮后的睡眠时间添加?说,750毫秒或类似的东西,看看会发生什么?