2014-09-12 3 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; 
} 

Je suis en train de dormir la Thread pour que je puisse montrer un certain message de fantaisie dans l'activité des parents. On dirait que le processus doInBackground() se termine immédiatement sans aucun retard.Comment mettre retard dans Android Async Task

+0

Bienvenue sur le SO! Il n'y a pas de question dans votre message. Définissez clairement le contexte, ce que vous essayez d'atteindre, les erreurs que vous avez rencontrées jusqu'à présent et demandez quelque chose de spécifique. Sinon, les gens ne pourront ni ne voudront vous aider. – astorije

+1

temps dans android est mesurée en millisecondes donc 700 millisecondes ne sont même pas jusqu'à une seconde ... alors essayez de l'augmenter à quelque chose comme 4000 au lieu de 700 – danidee

+0

try 'Thread.currentThread(). Sleep (5000);' pour le retard de 5 secondes. –

Répondre

0

Cela va faire ce que vous voulez:

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

Ajout d'un sommeil de discussion sur un AsynTask est une mauvaise idée que AsyncTasks dans Android sont exécutées de façon séquentielle sur un fil. « Lorsque la première, AsyncTasks ont été exécutés en série sur un seul thread d'arrière-plan A partir de beignet, cela a été changé à une piscine de threads permettant à plusieurs tâches de fonctionner en parallèle.À partir de HONEYCOMB, les tâches sont exécutées sur un seul thread pour éviter les erreurs d'application courantes causées par l'exécution parallèle. " Cela signifie que TOUS les AsyncTasks en cours d'exécution seront retardés par la quantité de sommeil car ils doivent attendre que cette tâche AsyncTask se termine. –

+0

sleep retardera réellement le thread principal, pas le thread asynchrone. – whoami

+0

sleep retardera le thread qui l'appelle. Assurez-vous de ne dormir que sur doInBackground – xtr