Je suis le tutoriel de Google Android sur Udacity, mais dans le code spécifié, je reçois l'avertissement suivant:
Appel non vérifié à 'exécuter (Params ...)' en tant que membre du type brut 'Android.os.AsyncTask'
sur ce code:
DoSomethingTask myTask = new DoSomethingTask();
myTask.execute(); // Warning here
Faire quelque chose:
public class DoSomethingTask extends AsyncTask {
protected Object doInBackground(Object[] params) {
...
}
}
Quelqu'un peut-il expliquer cet avertissement et comment y remédier? Il semble que cela devrait fonctionner selon les instructions ...
L'avertissement est provoqué par les paramètres de la tâche. Essayez d'utiliser:
extends AsyncTask<Void, Void, Void>{
protected Object doInBackground() {
}
}
ou utiliser:
extends AsyncTask<Object, Void, Void>{
protected Object doInBackground(Object[] params) {
}
}
myTask.execute(anyObject);
Explication:
This document explique la signification des trois types pour AsyncTask.
Params, le type des paramètres envoyés à la tâche lors de son exécution.
Progress, le type des unités de progression publiées lors du calcul en arrière-plan.
- Résultat, le type du résultat du calcul en arrière-plan.
changement
AsyncTask asyncTask = new AsyncTask<Object, Void, String>() {
@Override
protected String doInBackground(Object... params) {
return "";
}
};
asyncTask.execute();
à
AsyncTask<Object, Void, String> asyncTask = new AsyncTask<Object, Void, String>() {
@Override
protected String doInBackground(Object... params) {
return "";
}
};
asyncTask.execute();
La référence AsyncTask doit être identique à la classe AsyncTask, et IDE ne préviendra pas。