2010-02-17 52 views
9

這是我的Activity中的代碼。啓動一個意圖,然後一個連接,對不對?如何在Android中綁定此服務?

hello_service = new Intent(this, HelloService.class); 
hello_service_conn = new HelloServiceConnection(); 
bindService(hello_service, hello_service_conn, Context.BIND_AUTO_CREATE); 

但我的問題是......連接裏面有什麼?

class HelloServiceConnection implements ServiceConnection { 
     public void onServiceConnected(ComponentName className,IBinder boundService) { 

     } 
     public void onServiceDisconnected(ComponentName className) { 

     } 
    }; 

有人能告訴我,我把什麼代碼爲onServiceConnectedonServiceDisconnected

我只想要一個基本連接,以便我的ActivityService可以相互交談。

編輯:我發現一個很好的教程,我可以真正關閉這個問題,除非有人想回答。 http://www.androidcompetencycenter.com/2009/01/basics-of-android-part-iii-android-services/

回答

16

我想指出的是,如果按照谷歌提供的服務的例子那麼你的服務將導致內存泄漏,看到這個傢伙如何正確地做優秀的後(並投票相關的谷歌錯誤)

http://www.ozdroid.com/#!BLOG/2010/12/19/How_to_make_a_local_Service_and_bind_to_it_in_Android

+3

鏈接到這篇文章不可用,但它可以在: http://www.mongrel-phones.com.au/default/how_to_make_a_local_service_and_bind_to_it_in_android – 2013-07-26 18:45:54

+0

給現在鏈接已經死了 – PKTomar 2014-11-04 12:35:20

1

服務連接到一個活動,你需要在ServiceConnection實施寫的是:

@Override 
public void onServiceDisconnected(ComponentName name) { 
mServiceBound = false; 
} 

@Override 
public void onServiceConnected(ComponentName name, IBinder service) { 
MyBinder myBinder = (MyBinder) service; 
mBoundService = myBinder.getService(); 
mServiceBound = true; 
} 

這裏mBoundService是您綁定服務的一個對象。看看這個Bound Service Example