android - 为什么 gmail/yahoo/what's app 服务没有被杀死?

标签 android

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

我认为甚至 GCMINTENTSERVICE 也有一段时间被 android 杀死了。

  1. 我的问题是 gmail/what's app/yahoo mail 为什么总是在没有前台通知的情况下同步。他们正在使用哪种同步机制。

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

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

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

最佳答案

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

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

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

根据 AndroidHeadlines

You may want to leave it persistent if you want to use BBM. In Android 4.3, Google has begun fighting apps that suck down battery and stay alive without you knowing. It now requires any app that wants to run in the background to place a persistent icon in your notification. Hence the BBM icon. Doing this allows that particular app to never be closed.

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

关于android - 为什么 gmail/yahoo/what's app 服务没有被杀死?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31981275/

相关文章:

android - 如何获得在android中停止服务的 Intent

android - 如何防止移动设备调整大小和使用正确的 css 文件

android - 未创建任何 Firebase 应用 - 调用 Firebase.initializeApp

android - 支持 Action Bar 不应用我的风格?

java - android中两种语句的区别

android - 将 "select"组合框设置为固定大小

android - arrayAdapter 中的 getItem() 如何工作?

android - 不工作我的模拟器得到这个错误

android - 是否有用于存储静态 map 的 Android 实用程序?

android - 如何正确传递上下文?