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

ces*_*max 23 service android background 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的任何正在运行的服务,因此这意味着一旦收到消息/通知,这个魔术服务就会重新启动

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

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

her*_*rom 47

在你对这个答案进行上/下投票之前,请考虑到答案已经接近3年了(说到2015年5月),事情可能已经改变了!

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

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

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

  • 别客气.如果这个答案对您有帮助,请考虑将其标记为正确答案(点击支票),以便将此问题标记为已关闭;) (4认同)

bon*_*nyz 12

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

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

你可以在这里找到官方文档.