将附加值传递给Android GCM onRegistered方法

时间:2013-04-25 08:41:01

标签: android google-cloud-messaging

我想将其他值传递给GCM onRegistered方法,因为我想检查用户是否未注册,然后我想调用GCMRegistrar.register(RegistrationActivity.this, SENDER_ID);并将现有用户ID传递给onRegistered方法。所以我的问题是如何传递一个额外的值,以便我可以在onRegistered中获得该值。

package bd.org.basis.projectmanagement;

import android.content.Context;
import android.content.Intent;
import android.util.Log;

import com.google.android.gcm.GCMBaseIntentService;
import static bd.org.basis.projectmanagement.RegistrationActivity.SENDER_ID;;

public class GCMIntentService extends GCMBaseIntentService {
    public GCMIntentService() {
        super(SENDER_ID);
    }

    @Override
    protected void onError(Context context, String error) {
        // TODO Auto-generated method stub

    }

    @Override
    protected void onMessage(Context context, Intent intent) {
        // TODO Auto-generated method stub
        Log.e("onMessage", "See later");
        String title=intent.getStringExtra("title");
        String type=intent.getStringExtra("type");
        String msg=intent.getStringExtra("msg");
        String url=intent.getStringExtra("url");

        Log.e("onMessage", title+"--"+type+"--"+msg+"-- "+url);

    }

    @Override
    protected void onRegistered(Context context, String token) {
        // TODO Auto-generated method stub
        Log.e("onRegistered", token);

    }

    @Override
    protected void onUnregistered(Context context, String token) {
        // TODO Auto-generated method stub

    }

}

1 个答案:

答案 0 :(得分:0)

您无法向onRegistered添加参数,因为您无法更改要覆盖的方法的签名。

你为什么要这样做?你想在应用程序注册后调用onRegistered吗?调用GCMRegistrar.register会执行此操作,如果应用程序已注册,则现有注册ID仍将传递给onRegistered,因此您不需要新参数。