小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

運(yùn)行后臺服務(wù)(一)- 生命周期

 昵稱4818519 2011-04-04

作為一款多任務(wù)操作系統(tǒng),如果不能運(yùn)行后臺服務(wù),顯然說不過去,Android 當(dāng)然提供了運(yùn)行后臺程序的方法。而且非常簡單易用,只不過有一些小問題需要注意,這個主題分為兩部分,第一部分是如何實(shí)現(xiàn)一個Service以及他的生命周期,第二部分是對于一個個后臺服務(wù)應(yīng)該注意的事項(xiàng)。我們開始吧!

創(chuàng)建服務(wù)類

所謂的服務(wù),在Android里被稱做 Service,只要繼承 android.app.Service 這個抽象類,并且實(shí)現(xiàn)其中幾個方法就可以了。

  1. public class RoidingService extends android.app.Service {} 

里邊必須實(shí)現(xiàn)的一個方法是 onBind(Intent intent) ,他具體是做什么的我們下邊講。還有兩個重要的回調(diào)函數(shù)需要覆蓋,onCreate() 和 onDestroy()。跟 Actitivty 類似,在創(chuàng)建和銷毀 Service 時回調(diào)這兩個函數(shù),達(dá)到初始化或退出前保存狀態(tài)。

服務(wù)的生命周期

有了 Service 類我們?nèi)绾螁铀?,有兩種方法:

  • Context.startService()
  • Context.bindService()

在同一個應(yīng)用任何地方調(diào)用 startService() 方法就能啟動 Service 了,然后系統(tǒng)會回調(diào) Service 類的 onCreate() 以及 onStart() 方法。這樣啟動的 Service 會一直運(yùn)行在后臺,直到 Context.stopService() 或者 selfStop() 方法被調(diào)用。另外如果一個 Service 已經(jīng)被啟動,其他代碼再試圖調(diào)用 startService() 方法,是不會執(zhí)行 onCreate() 的,但會重新執(zhí)行一次 onStart() 。

另外一種 bindService() 方法的意思是,把這個 Service 和調(diào)用 Service 的客戶類綁起來,如果調(diào)用這個客戶類被銷毀,Service 也會被銷毀。用這個方法的一個好處是,bindService() 方法執(zhí)行后 Service 會回調(diào)上邊提到的 onBind() 方發(fā),你可以從這里返回一個實(shí)現(xiàn)了 IBind 接口的類,在客戶端操作這個類就能和這個服務(wù)通信了,比如得到 Service 運(yùn)行的狀態(tài)或其他操作。如果 Service 還沒有運(yùn)行,使用這個方法啟動 Service 就會 onCreate() 方法而不會調(diào)用 onStart()。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多