Android 推送通知还是服务?

Android Push Notifications or a Service?

我有一个在 iPhone 和 Android 设备上运行的应用程序。 我还有一台服务器,可以在客户端之间传输文件和其他数据。 现在,我的问题是关于 android 客户端。

目前,我有一个在后台运行的服务,负责处理进出服务器的输出和输入,每当从服务器收到新数据时,客户端都会向用户发出通知。

因此,如果用户进入他的设备设置并强制关闭应用程序,服务将停止 运行 并且不会收到数据(到服务器的套接字将关闭并且服务器不会向他发送任何数据并将其存储在数据库中以供用户下次启动应用程序并连接时使用。

所以这是一种方法,但另一种方法是推送通知,即使包括服务在内的整个应用程序关闭,它也会启动通知。 但缺点是,在我看来,我需要在我的应用程序中使用第三方组件,这增加了复杂性。

我需要帮助来决定是否使用推送通知,另外,此功能在其他 Android 应用程序中有多常见?

据我了解,您始终有一项服务 运行 套接字连接始终连接到您的服务器。这是一个巨大的电池消耗,可能已经给你的应用程序带来了很多不必要的复杂化。

您所说的第 3 方组件是 Google Play 服务,它由 Android OS(即 Google).

您所说的 "extra complication" 是在 AndroidManifest.xml 上添加几个权限和一个 BroadcastReceiver 并在 GCM 网络面板上注册您的应用程序。这里有详细的介绍https://developer.android.com/google/gcm/client.html

在许多应用程序中这是非常非常非常非常普遍的事情。 Facebook、Facebook Messenger、Gmail、带有恶劣天气通知的天气应用程序、WhatsApp、Skype、Twitter,几乎所有带有 "what's new" 部分的东西,Foursquare。他们都使用推送通知。

所以非常直接地回答问题:

  • 你绝对应该使用推送通知。