1. 程式人生 > >Android四大組件之service

Android四大組件之service

service

活動綁定服務並在活動裏調用服務的方法。

如果直接在活動裏new了一個服務的對象,是不能調用服務的方法的,因為這個時候服務還沒有啟動,這個時候需要在activity裏調用bindService方法,使activity與服務綁定,綁定服務後,會自動調用服務裏的OnBind()方法,返回一個Binder對象給activity使用,通過該對象來調用service裏的方法。

OnBind()
  當組件調用bindService()想要綁定到service時(比如想要執行進程間通訊)系統調用此方法.在你的實現中,你必須提供一個返回一個IBinder來以使客戶端能夠使用它與service通訊,你必須總是實現這個方法,但是如果你不允許綁定,那麽你應返回null.



之前一直不理解bindService()方法的原理,下面來寫一下自己的理解:

1、在service裏,新建一個內部類MyBinder extends Binder,在這個類裏實現與service的通信方法。同時service裏有個onBind() 方法,該方法只有在activity調用bindService()時才會執行,返回一個binder對象,即在service裏創建的那個內部類MyBinder的對象。

2、在activity中調用bindService對象時,新建的那個匿名內部類,new ServiceConnect(){

} 這裏的onServiceConnect(ComponentName name, IBinder service)這裏參數裏的service即我們在service的onBinder()方法裏返回的那個對象。

借著這個service對象,就可以操做Service服務裏的方法了。

本文出自 “YuanGuShi” 博客,請務必保留此出處http://cm0425.blog.51cto.com/10819451/1943315

Android四大組件之service