我正在关注 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 具有“对象”的输入参数,并且它无法识别定义的参数,因为它的输入参数是空的。现在,如果我将异步任务声明为一个类,我会放在<Void, Void, String>
它前面,这会告诉编译器我希望我的 doInBackground 有 Void 作为输入。但是当我这样放在<Void, Void, String>
“new AsyncTask()”前面时:
private void registerInBackground() {
new AsyncTask() <Void, Void, String>{
我得到编译器错误:
Syntax error on tokens, delete these tokens