2012-03-07 68 views
2

如何在Sencha Touch中每几秒钟可靠地执行一个功能? 我使用下面的代码,每7秒钟后调用函数:在Sencha Touch中定期执行任务

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

它适用于iPhone和桌面(铬),但我有Android的,即在Android上它无法正常工作的问题。我也试过用setInterval方法& setTimeout

回答

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);