Android中Service生命周期、启动、绑定、混合使用
一、Activity和Service如何綁定:
1.Service和Activity之間的連接可以用ServiceConnection來實現。實現一個ServiceConnection對象實例,重寫onServiceConnected和OnServiceDisconnected方法,連接建立后就能得到Service實例的引用。
2.調用bindService方法啟動服務。
二、Service的啟動方式:
1.Context.startService()
2.Context.bindService()
三、Service生命周期:
1.a首次調用startService()時,onCreate()創建服務,然后onStart(),結束服務只能調用stopService()方法,服務結束時會調用onDestroy();
b多次調用startService()不會導致多次創建服務,但會多次調用onStart()方法;
2.a首次調用bindService()時,onCreate(),然后onBind(),若調用者退出或是調用了unbindService(),系統就會先調用服務的onUnbind()方法,接著調用onDestroy()方法;
b多次調用bindService()方法并不會導致多次創建服務及綁定(onCreate()和onBind()只調用一次)
四、startService與bindService混合使用
混合調用的目的:即能提供與調用者的交互,又不會與調用者一起銷毀
1.startService bindService unbindServiced stopService
onCreate – onStartCommand – onBind – onUnbind–onDestroy
正常銷毀服務
2.startService bindSErvice 銷毀調用者
onCreate – onStartCommand – onBind – onUnbind(調用者銷毀時)-- onDestroy(調用者銷毀后,服務解綁,繼續運行,未銷毀)
3.bindService startService?unbindService stopService
onCreate – onBind – onStartCommand – onUnbind – onDestroy
正常銷毀服務
4.bindService startService?銷毀調用者
onCreate – onBind – onStartCommand – onUnbind (銷毀調用者時)-- onDestroy(后臺持續運行,直到被系統回收或者用戶強制銷毀服務)
總結
以上是生活随笔為你收集整理的Android中Service生命周期、启动、绑定、混合使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android的数据存储方式
- 下一篇: ContentProvider是如何实现