Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.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 GCM演示赢得';不接受服务器上的邮件&;应用程序重启_Android_Tomcat_Servlets_Google Cloud Messaging - Fatal编程技术网

Android GCM演示赢得';不接受服务器上的邮件&;应用程序重启

Android GCM演示赢得';不接受服务器上的邮件&;应用程序重启,android,tomcat,servlets,google-cloud-messaging,Android,Tomcat,Servlets,Google Cloud Messaging,我遵循了Android文档提供的演示客户机/服务器教程()。一切都和我第一次试用时宣传的一模一样。servlet首先出现了“没有设备注册!”屏幕,然后在我的设备上启动了演示应用程序,我能够将演示消息发送到设备上 然后我关闭了部署gcm demo war的Tomcat服务器,并关闭了我设备上的demo客户端应用程序(它不是模拟器Nexus 7)。我启动了tomcat服务器备份,我看到它确实按照预期部署了gcm demo war,但是当我转到servlet的URL(最初说“没有注册设备!”)时,它现

我遵循了Android文档提供的演示客户机/服务器教程()。一切都和我第一次试用时宣传的一模一样。servlet首先出现了“没有设备注册!”屏幕,然后在我的设备上启动了演示应用程序,我能够将演示消息发送到设备上

然后我关闭了部署gcm demo war的Tomcat服务器,并关闭了我设备上的demo客户端应用程序(它不是模拟器Nexus 7)。我启动了tomcat服务器备份,我看到它确实按照预期部署了gcm demo war,但是当我转到servlet的URL(最初说“没有注册设备!”)时,它现在说没有注册设备。我在我的设备上打开了应用程序,它显示设备已经在服务器上注册。为什么servlet看不到我注册的设备


非常感谢您的帮助。

我自己并没有采用Tomcat/servlet方法,而是选择Apache/PHP/MySQL方法,因此我没有直接的经验,但阅读服务器的Datastore.java中作为注释的示例代码,如下所示:

/**
 * Simple implementation of a data store using standard Java collections.
 * <p>
 * This class is thread-safe but not persistent (it will lost the data when the
 * app is restarted) - it is meant just as an example.
 */
/**
*使用标准Java集合简单实现数据存储。
*
*此类是线程安全的,但不是持久的(当
*应用程序重启)-这只是一个例子。
*/

因此,基本上,当您重新启动Tomcat时,它忘记了您的regId。

我自己没有采用Tomcat/servlet方法,而是选择Apache/PHP/MySQL方法,因此我没有直接的经验,但阅读示例代码时,我在服务器的Datastore.java中看到了注释,这是:

/**
 * Simple implementation of a data store using standard Java collections.
 * <p>
 * This class is thread-safe but not persistent (it will lost the data when the
 * app is restarted) - it is meant just as an example.
 */
/**
*使用标准Java集合简单实现数据存储。
*
*此类是线程安全的,但不是持久的(当
*应用程序重启)-这只是一个例子。
*/

所以基本上,当你重新启动Tomcat时,它忘记了你的注册表。

@NickT是对的。如果您想持久存储regid,可以使用
java.util.Properties
备份它,将数据存储到属性文件中,或者自己编写一个简单的文件存储


通过删除缓存或重新安装应用程序来重置客户端应用程序的状态。

@NickT是正确的。如果您想持久存储regid,可以使用
java.util.Properties
备份它,将数据存储到属性文件中,或者自己编写一个简单的文件存储

通过删除缓存或重新安装应用来重置客户端应用的状态