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

Android 即使我强制停止应用程序,whatsapp服务如何重新启动?,android,service,background,whatsapp,Android,Service,Background,Whatsapp,我正在设备A中运行whatsapp(从现在起我们可以称之为appX)。我进入“管理应用程序”->“强制关闭”,这样appX就会关闭,我不再将appX视为正在运行的服务 现在,5分钟后,我从另一个设备的appX(设备B)向设备a appX(我们杀死它的那个)发送一条消息。 以下是我测试的两个场景: 安卓2.1的设备A:它从未收到消息,因此我们可以说没有任何appX服务重新启动。仅当用户手动重新启动应用程序时,它才会收到消息 使用安卓2.3.6的设备A:出于某种神奇的原因,无论appX被杀多久,只

我正在设备A中运行whatsapp(从现在起我们可以称之为appX)。我进入“管理应用程序”->“强制关闭”,这样appX就会关闭,我不再将appX视为正在运行的服务

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

  • 安卓2.1的设备A:它从未收到消息,因此我们可以说没有任何appX服务重新启动。仅当用户手动重新启动应用程序时,它才会收到消息

  • 使用安卓2.3.6的设备A:出于某种神奇的原因,无论appX被杀多久,只要我们从设备B发送消息->设备A就会收到消息,因此,appX的服务就会重新启动。注意:在appX关闭的所有时间里,在没有收到任何通知的情况下,我无法在manage applications中看到任何正在运行的appX服务,因此这意味着这个神奇的服务在收到消息/通知后会立即重新启动

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

我正试图完成同样的行为,因此任何帮助都将不胜感激

在你投赞成票/反对票之前,请考虑以下因素: 答案是现在快3岁了(说到2015年5月),事情可能会变得更糟 你变了

我不认为这里发生的事有什么魔力!它只是安卓C2DM(请参阅:),而该应用程序有一个注册的
接收器
,用于接收传入的推送通知,并被此消息唤醒。 安卓C2DM在安卓2.2上可用,这就是为什么在安卓2.1启动并运行的设备上看不到相同行为的原因

顺便说一句:正如您所看到的,C2DM自2012年6月26日起就被弃用了。因此,应该使用GCM而不是C2DM(参见:)


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

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

即使应用程序包含
服务
或活动的
广播接收器
,也会发生这种情况


你可以找到官方文件。

我不知道whatsApp服务

但有可能在强制停止应用程序后,重新启动应用程序的服务


我在聊天应用程序中使用该服务。我必须做同样的事情,所以我使用START_Stick service,所以当我的应用程序终止或强制停止设置时,几秒钟后,我的服务重新启动,我能够登录到我的xmpp服务器并收到传入消息。

这里没有什么神奇之处,appX通过android GCM平台在GCM中使用推送通知,应用程序注册braodcast接收器,广播接收器在收到推送通知时启动服务。
Android GCM依赖于Android 2.2及更高版本上提供的google play服务,因此您没有在2.1设备上看到此消息

有史以来的最佳答案!感谢herom的准确回复!不客气。如果这个答案对你有帮助,请考虑把它标记为正确答案(点击检查),以便这个问题可以被标记为“关闭”;嗯,我已经实现了GCM,但是当我关闭服务时,它没有收到推送通知,因此我认为GCM没有帮助,即使我们关闭服务,并且仍然获得mesageGCM需要的可用互联网连接。通过此限制,您可以使用任何其他广播接收器(如SMSReceiver)进行广播。实际上,这不是真的,因为如果我在我的应用程序中实现GCM(推送通知)并将其禁用,我将不会收到任何推送。事实上,我认为即使在你的应用程序被杀死后,唤醒你的应用程序的最好方法是在你的清单中注册一个
意图过滤器
,但我认为它不适合这种情况。我在Android 4.4.4上试过了。我停止了WhatsApp表单应用->强制停止。在此之后,我没有自动收到任何消息。我不得不手动启动WhatsApp来获取任何消息。这只发生在2.3.6版本吗?这是最好的解决方案之一。这让我的day.START\u变得很粘,无法在棒棒糖版本中重新启动服务。。所有人都工作了