2011-09-29 68 views
0

here,瞭解android服務

它說服務不是一個單獨的過程,它不是一個線程。 但是它怎麼能「爲應用程序告知系統關於它想要在後臺執行的操作」?

如何在後臺完成某些操作,而不需要進程或線程?

回答

1

服務或多或少是一個潛在的長期Android對象。換句話說,Android會爲你實例化一個服務對象,並保持它爲你活着,直到你告訴Android你完成了它。

服務通常啓動後臺線程來執行某些任務。一旦他們完成任務,他們會告訴Android服務可以停止。一旦你的服務停止,Android會調用onDestroy。既然Android知道你的服務已經完成,如果你的應用程序的其餘部分沒有運行,Android可能會決定銷燬應用程序用於回收內存的進程。自從您的服務運行以來,它並沒有這樣做。

認爲它這樣(注意,有些東西拋棄了,因爲不會打擊你):

  1. 安卓創建你的服務的一個實例
  2. 的Android您的服務調用在onStart和你開始螺紋
  3. 執行返回到Android和它看到你的服務仍在運行,所以它不叫的onDestroy
  4. 經過一段時間在您的後臺工作正在做
  5. 你稱S對您的服務或您的服務topService是綁定
  6. Android現在看到的服務對象可以被摧毀,並收集
  7. 的Android您的服務調用的onDestroy和正在運行的服務
自己的內部列表中刪除
0

如何在後臺完成某些操作而不是進程或線程?

很簡單,不是一個過程,但就是一些過程的一部分。這意味着很可能只有一個進程處理系統中的所有服務,類似於在家庭活動中處理小部件的方式。