未选中调用“执行(参数…)”作为原始types的成员“android.os.AsyncTask”

我正在关注Udacity上的google android教程,但在指定的代码中,我收到以下警告:

未选中调用“执行(参数…)”作为原始types的成员“android.os.AsyncTask”

在这个代码上:

DoSomethingTask myTask = new DoSomethingTask(); myTask.execute(); // Warning here 

DoSomethingTask:

 public class DoSomethingTask extends AsyncTask { protected Object doInBackground(Object[] params) { ... } } 

任何人都可以解释这个警告,以及如何解决它? 看来它应该按照说明工作…

Solutions Collecting From Web of "未选中调用“执行(参数…)”作为原始types的成员“android.os.AsyncTask”"

警告是由任务的参数引起的。 尝试使用:

 extends AsyncTask<Void, Void, Void>{ protected Object doInBackground() { } } 

或使用:

 extends AsyncTask<Object, Void, Void>{ protected Object doInBackground(Object[] params) { } } myTask.execute(anyObject); 

说明:

本文档解释了AsyncTask的三种types的含义。

  1. 参数,执行时发送给任务的参数的types。

  2. 进度,在后台计算期间发布的进度单位的types。

  3. 结果,后台计算结果的types。

更改

 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(); 

AsyncTask引用需要与AsyncTask Class相同,IDE不会发出警告。