Android 以这种方式使用AsyncTask:";new AsyncTask(){";给了我错误

Android 以这种方式使用AsyncTask:";new AsyncTask(){";给了我错误,android,android-asynctask,Android,Android Asynctask,我正在学习关于GCM的android教程,该教程使用了一个名为“doInBackground”的函数,他们对该函数的定义如下: private void registerInBackground() { new AsyncTask() { @Override protected String doInBackground(Void... params) { //do stuff } @Override

我正在学习关于GCM的android教程,该教程使用了一个名为“doInBackground”的函数,他们对该函数的定义如下:

private void registerInBackground() {
    new AsyncTask() {
        @Override
        protected String doInBackground(Void... params) {
            //do stuff
        }
        @Override
        protected void onPostExecute(String msg) {
            //do stuff
        }
    }.execute(null, null, null);
}
但是当我将自己的代码复制并粘贴到eclipse中时,它抱怨说我没有实现doInBackground,这是因为它希望doInBackground有一个输入参数“Object”它无法识别所定义的对象,因为它的输入参数是void。现在,如果我将异步任务声明为类,我会将
放在它前面,这会告诉编译器我希望我的doInBackground将void作为输入。但是当我将
放在“new AsyncTask()”前面时:

参数类型规范之后应该有
()

new AsyncTask<Void, Void, String>() { /*Your code(e.g. doInBackground )*/ }.execute();  
newasynctask(){/*您的代码(例如doInBackground)*/}.execute();
试试这个:

new AsyncTask<Void, Void, Void>() {

    @Override
    protected Void doInBackground( Void... voids ) {
        //Do things...
        return null;
    }
}.execute();
newasynctask(){
@凌驾
受保护的空位背景(空位…空位){
//做事。。。
返回null;
}
}.execute();

在执行
后,您缺少一个
}
(null,null,null)。不知道你是否注意到,}在我的实际代码中,我只是在复制到这个网站时错过了它。这是谷歌的错误吗?当复制/粘贴一些示例代码时,它应该在没有错误的情况下运行,或者?代码还是一样的,天哪,谢谢,我快疯了!
new AsyncTask<Void, Void, String>() { /*Your code(e.g. doInBackground )*/ }.execute();  
new AsyncTask<Void, Void, Void>() {

    @Override
    protected Void doInBackground( Void... voids ) {
        //Do things...
        return null;
    }
}.execute();