在背景中运行循环

时间:2012-06-29 16:41:37

标签: javascript loops background uiscrollview titanium

所以,我需要在我的应用程序(用JS编写)的后台运行一个无限循环,该循环将用于每六秒循环一次ScrollableView。但是,当这个循环运行时,我无法按照您的想法在应用程序中执行任何其他操作。

总而言之,如何在让应用程序运行的同时始终运行此循环?

代码:

function startScrolling() {
    for(; ; ) {
        sleep(6000);
        Ti.API.info('Scrolling To Index: ' + viewIndex);
        scrollView.scrollToView(viewIndex);
        if(viewIndex == 4) {
            viewIndex = 0;
            scrollView.scrollToView(viewIndex);
        } else {
            scrollView.scrollToView(viewIndex);
            viewIndex++;
        }
    }
}

function sleep(milliseconds) {
    var start = new Date().getTime();
    while((new Date().getTime() - start) < milliseconds) {
        // Do nothing
    }
}

编辑:解决方案

setInterval(function() {
    Ti.API.info('Scrolling To Index: ' + viewIndex);
        scrollView.scrollToView(viewIndex);
        if(viewIndex == 4) {
            viewIndex = 0;
            scrollView.scrollToView(viewIndex);
        } else {
            scrollView.scrollToView(viewIndex);
            viewIndex++;
        }
}, 6000);

1 个答案:

答案 0 :(得分:11)

看看window.setInterval()

/* 
    Calls a function repeatedly, with a fixed 
    time delay between each call to that function.
*/
setInterval(startScrolling, 6000);

MDN文档:https://developer.mozilla.org/en/window.setInterval