2012-06-29 41 views
2

所以,我需要在我的应用程序的背景中运行一个无限循环(用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); 
+0

JavaScript不支持线程,所以你需要使用'setInterval'运行函数中的每条'X'毫秒。 – sachleen

回答