Android 安卓C2DM最后一次注册变更?
我在编写使用C2DM服务的应用程序时遇到问题。一切正常,但我担心注册id可能会更改,当我将其发送到服务器时,我希望发送一个好的注册id。Android 安卓C2DM最后一次注册变更?,android,android-c2dm,Android,Android C2dm,我在编写使用C2DM服务的应用程序时遇到问题。一切正常,但我担心注册id可能会更改,当我将其发送到服务器时,我希望发送一个好的注册id。 当用户登录时,我发送一个请求并获取注册id。在用户登录之前,C2DM必须工作。但是我是否可以检查注册id是否已更新,以便再次将其发送到服务器?我知道有类似于上次注册更改的事情,但仅此而已。。。关于如何比较当前注册id和上一个注册id(或类似的东西)有什么想法吗?谢谢 所以,您的问题终于解决了:我附上了接收方的一部分代码,以供他人帮助 * 公共类C2DMRece
当用户登录时,我发送一个请求并获取注册id。在用户登录之前,C2DM必须工作。但是我是否可以检查注册id是否已更新,以便再次将其发送到服务器?我知道有类似于上次注册更改的事情,但仅此而已。。。关于如何比较当前注册id和上一个注册id(或类似的东西)有什么想法吗?谢谢 所以,您的问题终于解决了:我附上了接收方的一部分代码,以供他人帮助 *
公共类C2DMReceiver扩展了BroadcastReceiver{
私人语境;
私钥;
私有字符串文本扩展;
私有字符串文本;
私有布尔标志=false;
@凌驾
公共void onReceive(上下文、意图){
this.context=上下文;
Log.e(“TAG”,“Action:+intent.getAction());
Set=intent.getExtras().keySet();
迭代器迭代器=set.Iterator();
while(iterator.hasNext()){
key=iterator.next();
Log.v(“TAG”,key+”:“+intent.getStringExtra(key));
}
}
}
*当注册ID发生变化时,即从C2DM接收人处,您是否能够获得新的注册ID?不,我没有。我只获得一次注册ID,然后我不检查更新。。。你的意思是我应该一直“听”广播接收机,并在新的接收机出现时更新我的注册ID?你可以发布一些关于如何做到这一点的示例代码吗?谢谢是的,你是对的,这样做。。。如果有任何问题,我会发布代码。。否则,你可以简单地做到这一点。谢谢你的评论。我在登录时在SharedReferences中保存一个注册ID,如果用户已经登录,我会检查SharedReferences中的注册ID是否与Receiver中的不同。看来这是个好办法。再次感谢!
public class C2DMReceiver extends BroadcastReceiver {
private Context context;
private String key;
private String textExpand;
private String text;
private boolean flag = false;
@Override
public void onReceive(Context context, Intent intent) {
this.context = context;
Log.e("TAG", "Action : " + intent.getAction());
Set<String> set = intent.getExtras().keySet();
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
key = iterator.next();
Log.v("TAG", key + " : " + intent.getStringExtra(key));
}