Sencha Touch中的定期任务执行

时间:2012-03-07 13:27:02

标签: sencha-touch scheduled-tasks

如何在Sencha Touch中每隔几秒钟可靠地执行一次功能? 我每隔7秒使用以下代码调用函数:

var task = new Ext.util.DelayedTask(function() {
    function();
    task.delay(7000);
}, this);
task.delay(0);

它适用于iPhone和桌面(chrome),但我遇到Android问题,即Android上无法正常工作。我还尝试使用 setInterval 方法& 的setTimeout

2 个答案:

答案 0 :(得分:1)

您是否尝试过setTimeout

http://www.w3schools.com/js/js_timing.asp

答案 1 :(得分:0)

this blog post开始修改了一下。

  

...所以这里是Ext.util.Functions类的一组简单扩展,它们提供了创建重复任务的能力,以及对它们的一些简单管理。

Ext.apply(Ext.util, {  
  repeat: function(taskName, fn, millis, zeroDayExecution) {
    this.tasks = this.tasks || {};  
    if (zeroDayExecution)  
      fn();  
    return this.tasks[taskName] = window.setInterval(fn, millis);  
  },

  cancelRepeatingTask: function(taskName) {  
    if (this.tasks) {
      var id = this.tasks[taskName];  
      if (!Ext.isEmpty(id)) {  
        window.clearInterval(id);  
        delete this.tasks[taskName];  
      }
    }
  },

  cancelAllRepeatingTasks: function() {  
    if (this.tasks)  
    Object.keys(this.tasks).forEach(function(key) { 
                                    this.cancelRepeatingTask(key); }, 
                                    this);         
    }  
});

示例电话:

Ext.util.repeat('task1', function() { console.log('test'); }, 1000);