我正在开发一个使用 GCM 推送通知的 Android 应用程序。我有一个MainActivity
尝试按照下面的onCreate()
方法注册设备。
String regId = GCMRegistrar.getRegistrationId(this);
if (regId.equals(""))
{
GCMRegistrar.register(this, "My sender id");
}
else
{
GCMIntentService.received=true;
}
while(!GCMIntentService.received)
{
Log.i("RegisterLocation","waiting...... for registartion id");
}
我无法在 中获取注册 ID ,但当设备注册时MainActivity
,控件将OnRegistered(context,String)
在类中起作用,GCMIntentService
该类是 的子类。GCMBaseIntentService
我也可以在日志中打印注册 ID。
@Override
protected void onRegistered(Context context, String registrationId)
{
received=true;
Log.i(TAG, "Device registered: regId = " + registrationId);
}
由于 GCM 需要一些时间来注册设备,所以我编写了 while 循环来测试设备是否已注册。但那个循环是一个无限循环。我也试过Thread.sleep()
。我希望该注册 ID 存储在我的本地服务器中。
任何人都可以建议一种解决方案来获取我的注册 IDMainActivity
吗?