2012-03-07 140 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);