深入淺出Android Service (3)

        前兩節中可以看到Activity和Service,context.startService對應着Service中的onStart()方法,context.onBindService對應的是Service中的onBind()方法。當我們繼想綁定一個Service又想在Activity停止時,Service不會停止,我們可以先StartService,然後再BindService()。這時候的流程圖如下所示:

        此時需要注意一個問題,當Activity退出的時候,Sercvice並不會停止,此時我們可以再進入Activity重新綁定,當這時候Service就會調用onRebind()方法,但是調用onRebind()方法的前提是先前的onUnbind()方法執行成功,但是使用super.onUnbind(intent)是執行不成功的,這時候我們要手動的使其返回true,再次綁定時Rebind()就會執行。否則,如果退出時不顯示的指定onUnbind()爲成功的話(爲false),那麼重新啓動此Activity來綁定服務時,Service的onBind()方法和onReBind都不會執行,但是ServiceConnection方法確一定會回調了。這說明在Service中的onBind()方法不同於onStart()方法不能被重複調用。​


本節代碼和上節代碼大致相同,只不過是在bind之前先start service ,大家可以在DDMS中看onUnbind()    onRebind()的調用情況。本節代碼在此下載:

http://download.csdn.net/detail/internetman/3967758

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