編輯:關於Android編程
1)可以通過調用Context.startService()啟動一個Service,這可能會觸發Service的onCreate()和onStart()操作,具體來說即執行startService()一定會觸發onStart(),但如果該Service已經在系統中存在,則onCreate()不會被再次調用,它只在Service第一次啟動時觸發。
通過Context.startService()啟動的Service會一直運行,直到通過Context.stopService()或者stopSelf()停止它。多次通過startService()啟動某個服務並不會生成多個實例,但會導致服務的onStart()被多次調用,當然由於只有一個實例,因此無論啟動多少次,停止它只需調用一次Context.stopService()或stopSelf()就可以了。2)也可以通過Context.bindService()來獲得一個服務的鏈接,這個鏈接是一直會保持到通過Context.unbindService()斷掉它。如果在連接時系統中還沒有該服務,則可能會新創建一個服務,這時Service的onCreate函數也同樣會被調用。連接建立時會Service的onBinder會被觸發,通過onBinder可以返回連接建立後的IBinder接口對象,使用服務的客戶端(比如某個Activity)可以通過IBinder對象和Service交互。
一個Service如果是通過bindService()啟動的,那麼它會一直存在到沒有任何客戶端與它保持連接為止,原因是可能有很多客戶端與這個服務保持連接,這時如果某個鏈接被客戶端主動斷掉只會是Service的鏈接數減1,當減至0的時候這個Service就會被銷毀。3)一個Service既可以被啟動(start)也可以被連接(bind),這時Service的生命周期取決於它被創建的方式,如果是通過Context.startService()創建的則和第一種情況一樣,如果是通過Context.bindService()使用參數Context.BIND_AUTO_CREATE創建的,則情況和第二種一樣。
當然,在Service停止,被銷毀時,會觸發其onDestroy()函數,我們需要在這裡完成這個Service相關資源的清理,比如停止其子線程,注銷監聽器等等。1.創建一個類繼承viewpublic class MyToggleButton extends View { private static final String N
對我來說,寫自定義view是一個特麻煩但是寫完之後特有成就感的過程。寫完之後我總是喜歡拿給別人看,去炫耀(當然只是在自己熟悉和關系不錯的人群裡),盡管它們看起來會很簡陋。
抽象工廠模式(Abstract Factory)抽象工廠模式是對象的創建模式,它是工廠方法模式的進一步延伸和拓展的結果。抽象工廠模式更加抽象化,更具一般性特點。我們知道,
雖然很多同學已經順利入手了魅藍Note3,也根據網上的一些相關資料獲取到了魅藍Note3的Root權限,但是在使用一些修改類的軟件時候依舊會碰到提示該設備未