在后台运行循环

Run Loop In Background

本文关键字:循环 运行 后台      更新时间:2023-09-26

因此,我需要在我的应用程序后台运行一个无限循环(用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);

看看 window.setInterval()。

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