Android四大組件之Service

            Service的基礎講解,一下兩篇文章講的不錯:

            1.http://www.360doc.com/content/14/0415/18/2793098_369238276.shtml

           2.http://blog.csdn.net/ryantang03/article/details/7770939   service生命週期相關


          這裏只做一些總結和常用知識面試點等:

          1.Service是在哪個線程中運行的?是主線程嗎?

           答案:是運行在主線程的,也就是UI線程,而並不是子線程,所以如果有耗時操作,不能在Service中直接寫,必須新起線程。

          2.Service生命週期

           

            需要注意的是在調用了onBind之後,service就和對應的activity進行了綁定,如果activity退出時,service也會停止掉。

           當同時調用了startService和bindService兩個方法的時候,service必須經過stopService和unBindService兩部,service才能進行destroy操作。


  3.如果我們要進行耗時操作,我們當需要在service中進行耗時操作時,需要怎樣做?

       (1).在Service中啓動線程進行操作。

       (2).用IntentService,它自帶了Worker線程。

     有關IntentService的使用可以參考http://www.tuicool.com/articles/zeMFFvB

  4.既然Service不能處理耗時操作,如果要進行耗時操作,我們必須在它內部啓動thread或者用IntentService,那我們爲什麼還要用Service而不是直接用Thread?

        (1).Service只會創造一次,而且程序可以控制它停止

        (2),Service也可以被多個Activity控制,進行資源共享,有自己獨立的生命週期方法。而Thread一旦起來了就沒有辦法控制,且資源不共享,不能在多個Activity中控制一個thread

        (3).Service中可以通過broadcast來啓動service,而thread不可以。

     可參見:http://jiangnanlove.iteye.com/blog/1333347

  5.Service可以運行在一個單獨的進程中,可以在AndroidManifest中配置process即可。這樣我們可以通過啓動Service來完成一個進程的創建。

  6.在使用過程中要注意Service的增加會增加耗電量,所以要注意Service的管理和使用。




發佈了22 篇原創文章 · 獲贊 6 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章