2011-03-26 35 views
0

我是android的新手,我對android服務感到困惑,根據我的理解,與UI相關的代碼在activity中運行,後臺工作在我自己的線程中運行,那麼服務的用法是什麼?看來我可以使用活動和線程來做任何事情。如何理解android服務?

回答

5

後臺工作可以並且應該在一個線程中運行。但是,如果該工作不是服務的一部分,則操作系統可能會在沒有任何警告的情況下停止該線程,如果沒有任何應用程序的活動可見。

例如,如果您編寫的MP3播放器應用程序,您可能不希望音樂停止,如果用戶返回到主屏幕。因此,您製作了一種真正播放音樂的服務,然後操作系統將盡量避免在服務運行時終止應用程序的進程。

服務也可以用來爲其他應用程序提供功能。在這種情況下,當其他應用程序希望使用該服務時,應用程序的進程將按需啓動,並且一旦其他應用程序完成該服務,操作系統可能會停止該進程。

查看Service Documentation瞭解更多詳情。

+0

感謝您的回覆,但如果我在一個活動中啓動線程,然後用戶返回主屏幕,線程將停止運行? – 2011-03-27 01:51:15

+0

線程可能會繼續運行一段時間,但如果操作系統想要回收內存,它會在不發出警告的情況下終止應用程序。由於它沒有可見的活動,並且沒有正在運行的服務,操作系統認爲該進程只是應用程序的緩存,可以在沒有任何人關心的情況下清除該進程。請閱讀http://developer.android.com/guide/topics/fundamentals/processes-and-threads.html瞭解更多信息。 – 2011-03-28 03:54:29