2017-05-26 54 views
1

我正在運行啓動完成後啓動的Android服務。但是,當我關閉手機時,服務(以及所有連接的線程)似乎不會被破壞。Android服務不會在關機時被破壞

我有一個Socket連接在後臺運行,並且在關機時沒有斷開連接。而且,甚至沒有調用service.onDestroy()。

這是正常的還是可能是由於我的另一個問題?

+0

看起來應該是這樣,儘管如果手機用完電池可能沒有機會。請參閱https://stackoverflow.com/questions/10448304/handling-phone-shutdown-event-in-android –

+1

請詳細解釋** **「關機」的含義。通常情況下,我會將其解釋爲「斷電」,在這種情況下,您的套接字連接肯定不再運行,因爲CPU,RAM,WiFi,蜂窩無線電和其他所有設備都無法供電。 – CommonsWare

+0

就像Activity.onDestroy()一樣,不能保證將調用Service.onDestroy(),因爲整個應用程序進程可能會被終止。這可能是關閉手機時發生的情況,所有應用程序進程都會被終止。 – BladeCoder

回答

0

您可以使用Reciever,它可以訪問其他移動組件狀態,例如互聯網連接狀態,GPS狀態,只要移動啓動它將啓動您的服務simple example