【问题标题】:Why gmail/yahoo / what's app service is not getting killed?为什么 gmail/yahoo/what's app 服务没有被杀死?
【发布时间】:2015-08-13 06:47:03
【问题描述】:

我有一个意图服务,它不断轮询以检查服务器中的数据是否已被修改。问题是如果应用程序保持空闲一段时间,它会停止接收通知。我们怀疑该服务已被android杀死。

我认为甚至 GCMINENTSERVICE 在一段时间内也会被 android 杀死。

  1. 我的问题是如何在没有前台通知的情况下始终同步 gmail/what's app/yahoo 邮件。他们正在使用哪种同步机制。

  2. 您是否知道任何其他应用程序即使在后台也始终收到通知,以便我可以在 Google 中查看为什么它在一段时间内没有被杀死。

  3. 如果 gcmintentservice 在后台运行了一段时间,Google 是否会终止它。

编辑:GCMBASEINTENTSERVICE 是我们计划为推送通知实施的服务,因为使用较旧的轮询服务,应用程序在一段时间后没有收到通知。这可能是因为它在一段时间内被 android 杀死了。那么通过推送通知,应用程序总是会收到通知吗? Gcmbaseintentservice 不是 Intent 服务,过段时间也会被 android 杀死。

【问题讨论】:

    标签: android


    【解决方案1】:

    Android 会在一段时间后终止服务,以解决内存问题。始终在后台运行应用程序并不是一件好事,因为它会消耗内存和处理能力。

    1. 你有错误的想法。 GMail 和 Yahoo 不会轮询新邮件,它们使用的是推送通知机制,更准确地说是 Google Cloud Messaging 或 GCM。可以在后台接收推送通知,一旦他们收到推送通知,他们就会同步应用程序。

    2. BBM (BlackBerry messenger)没有使用 GCM,因为他们依赖 BlackBerry 服务器。所以他们在后台运行应用程序而不会被杀死。这是通过始终显示不可滑动通知来完成的。以某种方式通知,您可以在后台运行服务而不会被杀死。

    根据AndroidHeadlines

    如果您想使用 BBM,您可能希望保留它。在安卓中 4.3,谷歌已经开始与那些在你不知情的情况下消耗电池并保持活力的应用程序作斗争。它现在需要任何想要运行的应用程序 在后台放置一个永久图标在您的通知。 因此,BBM 图标。这样做可以使该特定应用程序永远不会 关闭。

    1. 如果设备内存不足或新服务在后台运行,谷歌肯定会终止任何服务。

    【讨论】:

    • 好的。但是推送通知是由 gcmintentservice 完成的,它是一个意图服务。所以即使我们用 gcmintentservice 替换我们正在使用的服务,被 android 杀死的可能性是一样的吗?但我们没有看到 yahoo 和 gmail 通知在一段时间后停止。那么为什么我们的应用程序的通知被杀死了?我们可以为我们的服务设置优先级吗?
    • "要接收简单的下游消息,请使用扩展GcmListenerService 的服务来处理GcmReceiver 捕获的消息。GcmReceiver 扩展了WakefulBroadcastReceiver,保证CPU 处于唤醒状态,以便您的侦听器服务可以完成其任务。" - GCM 文档
    • Gcmbaseintent 服务未在设置中显示为单独的服务。即使我们终止了应用程序,我们也会收到通知。所以我想这种接收通知的方法总是有效的。不会像 android 会在一段时间内终止服务,我们将停止接收云更新。
    猜你喜欢
    • 2012-08-19
    • 2014-01-22
    • 2019-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多