3

開発者の Web サイトの sameple コードを使用していますが、コンパイルでエラーが発生します。 http://developer.android.com/google/gcm/gs.html

以下のコードをコピーする

private void registerBackground() {
new AsyncTask() {
    @Override
    protected String doInBackground(Void... params) {
        String msg = "";
        try {
            regid = gcm.register(GCM_SENDER_ID);
            msg = "Device registered, registration id=" + regid;

            // You should send the registration ID to your server over HTTP, 
            // so it can use GCM/HTTP or CCS to send messages to your app.

            // For this demo: we don't need to send it because the device  
            // will send upstream messages to a server that will echo back 
            // the message using the 'from' address in the message. 

            // Save the regid for future use - no need to register again.
            SharedPreferences.Editor editor = prefs.edit();
            editor.putString(PROPERTY_REG_ID, regid);
            editor.commit();
        } catch (IOException ex) {
            msg = "Error :" + ex.getMessage();
        }
        return msg;
    }
    // Once registration is done, display the registration status
    // string in the Activity's UI.
    @Override
    protected void onPostExecute(String msg) {
        mDisplay.append(msg + "\n");
    }
}.execute(null, null, null);
}

コンパイル中に「Asynctask は生の型です。ジェネリック型への参照はパラメーター化する必要があります。」というエラーが表示されます。

4

1 に答える 1

9

ジェネリック型パラメーターを宣言していません。

変化する

new AsyncTask() {

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

また、

execute(null, null, null);

に変更できます

execute();
于 2013-05-26T18:19:02.777 に答える