Vérifiez travail AsyncTask
J'ai quelques travaux à faire dans l'autre thread (en doingAsyncTask).
Début du travail lorsque l'utilisateur cliquera sur le bouton. Mais dans le même temps
un seul objet de doingAsyncTask doit faire ce travail, je meen si doingAsyncTask est de travail, puis cliquez sur le bouton ne doit pas créer un nouvel objet de doingAsyncTask et de l'exécuter, il doit attendre jusqu'à ce que le travail de finition. Comment puis-je le vérifier?
public class SearchActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//....
}
public void onclickButton(View view) {
new doingAsyncTask().execute();
}
public class doingAsyncTask extends AsyncTask<Void, Void, Void> {
protected Void doInBackground(Void... unused) {
//doing something
return(null);
}
protected void onProgressUpdate() {
}
protected void onPreExecute() {
}
protected void onPostExecute() {
}
}
}
RÉSOLU
thx à tous , sa fonctionne pour moi
if(task.getStatus() == AsyncTask.Status.FINISHED)
task=new ProgressBarShow();
if(task.getStatus() == AsyncTask.Status.PENDING){
//task=new ProgressBarShow();
task.execute();
}
Il y a beaucoup de solutions de rechange, par exemple, désactiver le bouton une fois qu'il a cliqué, puis de le ré-activer après l'AsyncTask terminer.
OriginalL'auteur yital9 | 2012-04-06
Vous devez vous connecter pour publier un commentaire.
Cochez cette AsyncTask.Statut
code:
EDIT:
Faire une référence de votre AsyncTask de l'objet et de l'utiliser pour vérifier l'état..
doingAsyncTask().getStatus() ?? il est des œuvres ?
doingAsyncTask est un objet de référence de votre AsyncTask --- sory, c'est quoi ?
vous avez besoin d'asyncTask = new doingAsyncTask(); avant d'asyncTask.execute(); cause si le statut terminé ll ne fonctionne pas
OriginalL'auteur user370305
Vous pouvez vérifier le statut de AsyncTask => AsyncTask.Statut
Par exemple:
// c'était juste pour l'idée. Si j'ai donner le nom de l'objet puis de nouveau une question soulève
what is mtask actually
? c'est pourquoi j'ai écrit cette ligne.la question principale est : AsyncTask de créer de nouveaux objets chaque exécution, afin de vérifier l'état d'un nouvel objet n'est pas utile, tu sais
Bonjour monsieur, je tiens à appeler 3 asynctask dans l'activité principale simultanément.on m'a donné cette solution, mais il ne fonctionne pas.la première fois que asynctask appel, puis un autre à l'intérieur de condition qui n'est pas appelé..ne sais pas comment résoudre ce problème ?
Avez-vous vérifié pourquoi suivante asynctask est pas appelé? Pourquoi cette condition n'est pas appelé? Je ne peux pas aider sans voir ce que vous faites exactement, mais de Débogage peut vous aider, c'est sûr!
OriginalL'auteur Paresh Mayani
Utilisation getStatus() de AsyncTask pour vérifier son état avant de fixer une nouvelle tâche
OriginalL'auteur waqaslam