即使我强制停止应用程序,whatsapp服务如何重新启动?

我在设备A中运行whatsapp(我们可以从现在开始称它为appX)。我去管理应用程序 – >强制关闭以便appX关闭,我不再将appX视为正在运行的服务

现在,5分钟后,我从另一台设备的appX(设备B)向设备A appX(我们杀死它的那个)发送消息。 以下是我测试的两个场景:

  • 设备A与Android 2.1:它永远不会收到消息,因此我们可以说没有任何appX服务重新启动。 如果手动用户重新启动应用程序,它仅接收消息。

  • 设备A与android 2.3.6:出于一些神奇的原因,无论自appX被杀多久以来,只要我们从设备B发送消息 – >设备A获取消息,因此,appX的服务重新启动。 注意:在关闭appX并且没有收到任何通知的情况下,我无法在管理应用程序中看到appX的任何正在运行的服务,因此这意味着一旦收到消息/通知,这个魔术服务就会重新启动

我知道这听起来很奇怪,很多人会说这是不可能的,但同样,这已经在这两款设备上进行了测试。

我试图完成同样的行为,所以任何帮助将不胜感激。

Related of "即使我强制停止应用程序,whatsapp服务如何重新启动?"

在您对此答案进行上/下投票之前,请考虑到现在答案已接近3年(谈到2015年5月),事情可能已经发生变化!

我觉得这里发生的事情并不神奇! 它只是Android C2DM(请参阅: https : //developers.google.com/android/c2dm/ ),而应用程序有一个注册的Receiver用于传入推送通知,并被此消息唤醒。 Android C2可用于Android 2.2,这就是为什么在Android 2.1启动并运行的情况下,您无法在设备上看到相同的行为。

顺便说一句:正如您所看到的,C2DM自2012年6月26日起被弃用。因此,不应使用C2DM,而应使用GCM(请参阅: http : //developer.android.com/guide/google/gcm/gs.html )

有用的评论:GCM需要可用的互联网连接。 您可以通过此限制使用任何其他广播接收器,如SMSReceiver。

Android 3.1 (API 12)开始, 如果应用程序被强制停止,则在用户再次手动运行应用程序之前,它不会重新启动

即使应用程序包含Service或活动的BroadcastReceiver也会发生这种情况。

你可以在这里find官方文档。

我不知道whatsApp服务。

但是有可能在强制停止应用后,重启app的服务。

我为我的chatApp使用START_STICKY服务。 我必须做同样的事情,所以我使用START_STICKY服务,所以当我的应用程序杀死或强制停止设置,几秒后我的服务重新启动,我能够登录到我的xmpp服务器并获取传入消息。

这里没什么神奇的appX使用推送通知通过Android GCM平台https://developer.android.com/google/gcm/index.html在GCM中应用程序注册一个braodcast接收器,广播接收器启动服务获取推送通知。 Android GCM依赖于Android 2.2及更高版本上提供的Google Play服务,因此您在2.1设备上看不到该消息