使用AsyncTask这种方式:“新的AsyncTask(){”给我错误

我遵循一个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”的input参数,并且由于其input参数是空的,所以它不能识别被定义的input参数。 现在,如果我将asynchronous任务声明为一个类,我会在它前面放置<Void, Void, String> ,这将告诉编译器,我希望我的doInBackground将VOid作为input。 但是当我把<Void, Void, String>放在“new AsyncTask()”前面时,

  private void registerInBackground() { new AsyncTask() <Void, Void, String>{ 

我得到编译器错误:

 Syntax error on tokens, delete these tokens 

Solutions Collecting From Web of "使用AsyncTask这种方式:“新的AsyncTask(){”给我错误"