5

我正在尝试创建一个类似于 what's up 或 messenger 的应用程序以用于学习目的。

基本上,我创建了一个绑定到使用 TCP/IP 连接到 java 服务器的服务的活动。

当服务处于活动状态时,用户接收和发送消息。问题是当用户关闭应用程序时(例如使用任务管理器 - 按住主页按钮)。如果应用程序关闭,服务将被终止,因为它有 0 个绑定。

我的问题是:此类应用程序的模式是什么,以便用户始终接收消息,最新情况如何始终设法发送消息并保持其服务活跃。

谢谢你。

4

3 回答 3

1

聊天应用程序使用套接字连接和 GCM/APN。如果应用程序在前台,则建立套接字连接。当应用程序在后台时,在收到 GCM 消息后,再次建立套接字连接。这样您还可以节省电池。长时间保持插座连接打开会耗尽设备的电池电量。有关示例代码,您可以参考我们的 android chat sdk:

https://github.com/AppLozic/Applozic-Android-SDK

https://github.com/AppLozic/Applozic-iOS-SDK

于 2016-06-08T21:12:53.517 回答
0

Google Talk 和其他即时通讯程序等应用程序经常使用Google Cloud Messaging。有一个关于这个的Google I/O 演讲,你可能会觉得有趣。

于 2012-08-22T23:53:09.923 回答
0

如果您有后端,那么您可以查看OneSignal它完全免费且有良好文档的:OneSignal

我想你已经知道推送通知:基本上你不会每次都听服务器。当推送到来时,云消息平台将为您触发电话。

如果您希望您的服务始终在关闭状态下打开应用程序,请使用STICKY_SERVICEstart-sticky-and-start-not-sticky

此外,如果您想了解定价计划,请阅读FCMFirebase Cloud Messaging

在这个页面:android-migrate-fcm你应该看到这个注释:

Firebase 云消息传递 (FCM) 是 GCM 的新版本。它继承了可靠且可扩展的 GCM 基础架构,以及新功能!请参阅常见问题解答以了解更多信息。如果您要在新应用程序中集成消息传递,请从 FCM 开始。强烈建议 GCM 用户升级到 FCM,以便从现在和将来的新 FCM 功能中受益。

于 2016-08-24T18:48:55.893 回答