android - GCM 演示不会在服务器和应用重启时接受消息

标签 android tomcat servlets google-cloud-messaging

我遵循了 Android 文档提供的演示客户端/服务器教程 (http://developer.android.com/google/gcm/demo.html)。当我第一次尝试时,一切都完全按照广告宣传的那样工作。 servlet 首先出现“没有设备注册!”屏幕,然后在我的设备上启动演示应用程序,我能够很好地将演示消息发送到设备。

然后我关闭部署了 gcm-demo war 的 Tomcat 服务器,并关闭了我的设备(不是模拟器,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.
 */

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

关于android - GCM 演示不会在服务器和应用重启时接受消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15609731/

相关文章:

android - 如何以编程方式从 Android 访问音乐文件

添加 Firebase Analytics 后 Android 应用崩溃

java - 如何向上一页传递参数?

javascript - AngularJS-Bootstrap TypeAhead : TypeError: Cannot read property 'length' of undefined 错误

eclipse - IllegalArgumentException : The servlets named [AdminController] and [muShag. Private.controller.AdminController] 都映射到 url-pattern

java - 在真实设备上调试 Android App 与 Servlet 的通信

android - 在 android studio 3.0.1 中创建新 Activity 时出现 IDE 错误

Android 应用程序无法在设备上运行,而在模拟器上运行良好

java - 运行jsp后报错requested source is not available

java - 在 Java Web 项目中编译 Servlets 和其他类