2013-08-19 3 views
0

나는 앱을 만들고 있는데, 작업을 지연시키기 위해 시간 지연을 코드에 추가하고 싶다. 지연을 밀리 초 단위로 설정할 수있는 것이 있습니까? 도와주세요.android에서 java 코드의 시간 지연을 추가하는 방법

내가 좋아하는 뭔가를하고 싶지 :

for(int i=1;i<100;i++){ 
    Delay(1000); // I want to add a delay so that this wont happend instanlty 
    Matrix matrix=new Matrix(); 
    matrix.postRotate((float) angle2,width, height); 
    image.setImageMatrix(matrix); 

호출에 Thread.sleep() ANR 안드로이드에서 Visual Basic의 타이머와 같은 무언가가 일으키는? Timer in vb는 주 프로그램에서 seperatly로 실행되는 요소로서 사용자가 빈도를 설정 한 이벤트를 발생시킵니다. 스레드에 대한의 javadoc에서

+0

사용 Thread.sleep (1000) 메서드 –

+0

은 Thread.sleep (1000)이 전체 응용 프로그램 및 기타 애니메이션을 고정 시키려고합니까? – mremremre1

+0

UI 스레드에서 잠든 경우에만. 모든 대답이 제시하는대로 별도의 스레드를 사용해야합니다. –

답변

3

Thread.sleep 별도의 스레드에서 그렇게 할 것입니다.

다른 용도로 AsyncTask을 사용하지 않는 경우 대신 사용하십시오. 그것은 당신을 위해 물건을 단순화합니다. AsyncTask는 스레드 풀을 사용하므로 스레드를 직접 만들지 않아도됩니다.

UI 스레드에서 잠을 자고있을 때 버튼 또는 이와 동등한 이벤트 콜백에서 잠을 자지 않도록하십시오. 그러면 앱이 반응이없고 느리게 보입니다. 다른 스레드에서는 잠자기 상태로 유지하고 UI로 다시 호출하여 업데이트하십시오. 업데이트 된 질문에 따라

편집 : 당신이 UI에 대한 몇 가지 애니메이션을 수행하는 것처럼

보인다. 별도의 스레드가 장시간 실행되는 프로세스로 보일 때 가장 좋습니다.

1

전체 스레드 수면을 유지하려는 경우. 그러나 앱/휴대 전화의 UI를 고정 시키므로 기본 스레드에서이 작업을 수행하지 마십시오.

향후에 뭔가를하고 싶지만 앱을 들지 않으려면 지연된 메시지를 처리기에 게시 할 수 있습니다.

더 먼 미래에 뭔가를하려면 AlarmManager를 통해 알람을 설정하십시오.

관련 문제