service一個看不見,摸不著的界面服務和進程:每個app的啟動必然會產生一個進程,一個進程中,可能會包含多個服務,也可以不啟動任何服務。服務有兩種:第一種startService方式啟動,特性:和應用無關,(即使應用退出了,服務依舊在后臺進行)關閉這種服務只能調用stopService方法;startService方式的測試步驟:第一步:自定義一個類第二步:繼承自Service(android.app)第三步:注冊清單文件<service android:name=".MyService"></service>第四步:啟動服務 第一次onCreate>onStartCommand之后再點擊啟動,只執行onStartCommand第五步:停止服務 執行onDestroy第二種bindService方式啟動特性:跟隨Activity的生命周期變化而改變如果啟動后沒有結束的話,則不會再次啟動,(不再執行任何生命周期)如果啟動后手動結束的話,則可以再次開啟;如果啟動后,Activity退掉了,則服務結束;ANR application Not Responding 程序無響應測試BindService,開啟一個子線程,因為主線程(UI線程)不能執行耗時操作。開啟子線程:new Thread(){ }.start();1.在Service中自定義內部類,繼承自Binder,2.在自定義內部類中,寫一個方法,方法中有一個賦值操作,把參數列表中的值賦值給Service當前類的值3.在onBind方法中,返回你自定義的類名4.在主類中,聲明一個Service中自定義好的類的變量名5.在serviceConnection方法中,實現賦值操作,即自定義好的類的變量名=iBinder,然后強制類型轉換6.再點擊按鈕的時候使用,自定義好的類的變量名,方法名的方法傳遞參數新聞熱點
疑難解答