2014-09-12 1 views
0
public Long doInBackground(StudentInfo... s) 
{ 
    StudentInfo currentStudent = s[0]; 

    publishProgress("Creating New User"); 

    SiddDatabaseHelper dbHelper = SiddDatabaseHelper.getInstance(mContext); 
    long newStudentID = dbHelper.addUpdateStudentInfo(currentStudent); 

    Log.e("TTT", "saved user() newStudentID " + newStudentID); 
    publishProgress("Saving New User in Session"); 

    try 
    { 
    Thread.sleep(700); 
    } 
    catch (InterruptedException e) 
    { 
    e.printStackTrace(); 
    } 
    return newStudentID; 
} 

Thread 나는 부모 활동에 멋진 메시지를 표시 할 수 있도록 잠을 자려고합니다. doInBackground() 프로세스가 지연없이 바로 완료되는 것처럼 보입니다.안드로이드 비동기 작업에 지연을 넣는 방법

+0

가 SO에 오신 것을 환영합니다! 귀하의 게시물에 질문이 없습니다. 명확하게 상황을 정의하고, 성취하고자하는 일, 지금까지 어떤 오류가 있었는지, 구체적으로 물어보십시오. 그렇지 않으면 사람들은 당신을 도울 수 없으며 돕고 싶어하지 않을 것입니다. – astorije

+1

안드로이드의 시간이 밀리 초 단위로 측정되므로 700 밀리 초가 1 초도 걸리지 않으므로 4000 대신 4000으로 늘리십시오. – danidee

+0

'Thread.currentThread(). sleep (5000);' 5 초. –

답변

0

이 당신이 원하는 것을 할 것

try { 
    Thread.sleep(1000);     
} catch(InterruptedException ex) { 
    Thread.currentThread().interrupt(); 
} 
+0

AsynTask에 스레드 수면을 추가하는 것은 안드로이드의 AsyncTasks가 하나의 스레드에서 순차적으로 실행되기 때문에 나쁜 생각입니다. "처음 소개되었을 때, AsyncTasks는 단일 배경 스레드에서 연속적으로 실행되었습니다 .DONUT으로 시작하여 이것이 풀로 변경되었습니다 HONEYCOMB로 시작하는 작업은 병렬 실행으로 인한 공통 응용 프로그램 오류를 피하기 위해 단일 스레드에서 실행됩니다. " 이것은 실행중인 모든 AsyncTask가이 AsyncTask가 끝나기를 기다려야하기 때문에 수면 양만큼 지연된다는 것을 의미합니다. –

+0

sleep은 실제로 비동기 스레드가 아닌 주 스레드를 지연시킵니다. – whoami

+0

sleep은이를 호출하는 스레드를 지연시킵니다. doInBackground에서만 절전 모드를 호출해야합니다. – xtr

관련 문제