且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何WhatsApp的服务被重新启动,即使我强行停止应用程序吗?

更新时间:2023-08-21 09:36:58

  

在你向上/向下票这样的回答,请考虑到了   答案是近3岁了(说2015年5月),事情可能   变了!

我不认为这是一些神奇这里发生的事情!这只是Android的C2DM(参见: https://developers.google.com/android/c2dm/),而应用程序有一个注册接收传入的推送通知,并得到此消息唤醒。 Android的C2DM是/是可利用的Andr​​oid 2.2系统,这就是为什么你不能看到相同的行为在设备上使用Android 2.1的启动和运行的原因。

顺便说一句:正如你所看到的,C2DM是自6月26日,2012年。因此,而不是C2DM的pcated德$ P $,应使用GCM(见的 http://developer.android.com/guide/google/gcm/gs.html

有用的注释:GCM需要提供互联网连接。可以使用任何其他的广播接收器,例如SMSReceiver为通过使此限制。

I am running whatsapp (we could call it appX from now on) in device A. I go to manage applications -> force close so appX gets closed and i no longer see appX as running services.

Now, after 5 minutes, I send a message from another device 's appX (device B) to device A appX (the one we killed it). Here are the 2 scenarios i tested :

  • device A with android 2.1 : it never receives the message, therefore we could say that none of appX services got restarted. It ONLY receives the message if manually the user restarts the app.

  • device A with android 2.3.6 : for SOME magic reason, no matter how long it's been since appX got killed, as soon as we send the message from device B -> device A gets the message, therefore, appX's service gets restarted. Note : all the time that appX was closed and WITHOUT receiving any notification, i wasn't able to see any running services of appX in manage applications, so this means that this magic service gets restarted as soon as it receives a message/notification

I know it sounds weird, and lot of people will say this is impossible, but again, this has been tested on these 2 devices.

I am trying to accomplish this same behavior, so any help will be appreciated it.

Before you up/down-vote this answer please take into account that the answer is nearly 3 years old now (speaking of May 2015) and things may have changed!

I don't think it's some magic what happens here! It's just Android C2DM (see: https://developers.google.com/android/c2dm/), whereas the app has a registered Receiver for incoming Push Notifications and gets awaken by this message. Android C2DM is/was available with Android 2.2, that's the reason why you can't see the same behaviour on your device with Android 2.1 up and running.

By the way: As you can see, C2DM is deprecated since June 26th, 2012. So instead of C2DM, one should use GCM (see: http://developer.android.com/guide/google/gcm/gs.html)

Useful Comment: GCM needs available internet connection. You can using any other broadcast receiver such as SMSReceiver for by passing this limitation.