未选中调用“执行(参数…)”作为原始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) { ... } } 

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

  • 在jellybean的NetworkOnMainThreadException错误
  • Android的SQLite查询,插入,更新,删除,总是需要在后台线程?
  • 如何检查asynchronous任务是否已经在运行
  • AsyncTask,RejectedExecutionException和Task Limit
  • 为什么android logcat没有显示运行时exception的堆栈跟踪?
  • 如何从AsyncTasks doInBackground()中检索数据?
  • 从AsyncTask返回数据而不阻止UI
  • AsyncTask创build导致崩溃
  • 警告是由任务的参数引起的。 尝试使用:

     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不会发出警告。