2012-06-29 7 views
2

그래서 6 초마다 ScrollableView를 순환하는 데 사용할 내 앱 (JS로 작성)의 백그라운드에서 무한 루프를 실행해야합니다. 그러나이 루프가 실행되는 동안 나는 생각했던 것처럼 응용 프로그램에서 다른 작업을 수행 할 수 없습니다.백그라운드에서 루프 실행

요약하면 앱을 계속 작동시키는 동안이 루프를 어떻게 계속 실행할 수 있습니까?

코드 :

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

자바 스크립트가 스레딩을 지원하지 않습니다. – sachleen

답변

8

window.setInterval()를 살펴 보자.

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

MDN 문서 : 당신이 함수마다`X` 밀리 초를 실행하는`setInterval`를 사용하는 것이 좋습니다 그래서 https://developer.mozilla.org/en/window.setInterval

+0

알겠습니다. 고마워요. 하나의 방법으로 결합하고 위의 코드를 – JTApps

+0

@ JTApps 간격으로 게시했습니다. 도움이 되서 기쁩니다. –

관련 문제