Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓C2DM最后一次注册变更?_Android_Android C2dm - Fatal编程技术网

Android 安卓C2DM最后一次注册变更?

Android 安卓C2DM最后一次注册变更?,android,android-c2dm,Android,Android C2dm,我在编写使用C2DM服务的应用程序时遇到问题。一切正常,但我担心注册id可能会更改,当我将其发送到服务器时,我希望发送一个好的注册id。 当用户登录时,我发送一个请求并获取注册id。在用户登录之前,C2DM必须工作。但是我是否可以检查注册id是否已更新,以便再次将其发送到服务器?我知道有类似于上次注册更改的事情,但仅此而已。。。关于如何比较当前注册id和上一个注册id(或类似的东西)有什么想法吗?谢谢 所以,您的问题终于解决了:我附上了接收方的一部分代码,以供他人帮助 * 公共类C2DMRece

我在编写使用C2DM服务的应用程序时遇到问题。一切正常,但我担心注册id可能会更改,当我将其发送到服务器时,我希望发送一个好的注册id。
当用户登录时,我发送一个请求并获取注册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));
    }