Android GCM演示赢得';不接受服务器上的邮件&;应用程序重启
我遵循了Android文档提供的演示客户机/服务器教程()。一切都和我第一次试用时宣传的一模一样。servlet首先出现了“没有设备注册!”屏幕,然后在我的设备上启动了演示应用程序,我能够将演示消息发送到设备上 然后我关闭了部署gcm demo war的Tomcat服务器,并关闭了我设备上的demo客户端应用程序(它不是模拟器Nexus 7)。我启动了tomcat服务器备份,我看到它确实按照预期部署了gcm demo war,但是当我转到servlet的URL(最初说“没有注册设备!”)时,它现在说没有注册设备。我在我的设备上打开了应用程序,它显示设备已经在服务器上注册。为什么servlet看不到我注册的设备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(最初说“没有注册设备!”)时,它现
非常感谢您的帮助。我自己并没有采用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
备份它,将数据存储到属性文件中,或者自己编写一个简单的文件存储
通过删除缓存或重新安装应用来重置客户端应用的状态