Unchecked Call to 'execute (Params...)' как член raw type 'android.os.AsyncTask'
Я следую руководству google android по Udacity, но в указанном коде я получаю следующее предупреждение:
Непроверенный вызов "выполнить (Params...)" в качестве члена необработанного типа "android.os.AsyncTask"
в этом коде:
DoSomethingTask myTask = new DoSomethingTask();
myTask.execute(); // Warning here
DoSomethingTask:
public class DoSomethingTask extends AsyncTask {
protected Object doInBackground(Object[] params) {
...
}
}
Может ли кто-нибудь объяснить это предупреждение и как его исправить? Кажется, он должен работать в соответствии с инструкциями...
Ответы
Ответ 1
Предупреждение вызвано параметрами задачи. Попробуйте использовать:
extends AsyncTask<Void, Void, Void>{
protected Object doInBackground() {
}
}
или используйте:
extends AsyncTask<Object, Void, Void>{
protected Object doInBackground(Object[] params) {
}
}
myTask.execute(anyObject);
Пояснение:
В этом документе объясняется значение трех типов для AsyncTask.
-
Парамс, тип параметров, отправленных в задачу при выполнении.
-
Прогресс, тип единиц прогресса, опубликованных во время фонового вычисления.
- Результат, тип результата фонового вычисления.
Ответ 2
изменить
AsyncTask asyncTask = new AsyncTask<Object, Void, String>() {
@Override
protected String doInBackground(Object... params) {
return "";
}
};
asyncTask.execute();
to
AsyncTask<Object, Void, String> asyncTask = new AsyncTask<Object, Void, String>() {
@Override
protected String doInBackground(Object... params) {
return "";
}
};
asyncTask.execute();
Ссылка AsyncTask нужна так же, как класс AsyncTask, а среда IDE не будет предупреждать.