2011-02-25 92 views
0

活動的處理器方法就像onClick用於各種UI事件。如何保證這些方法的服務連接存在?服務連接後,服務連接有一個onServiceConnected方法用於初始化。但是,這似乎不是UI初始化的最佳位置。我想避免onClick(View v){service.getValue()}作爲空服務引用。另一方面,我不希望UI渲染依賴於等待服務引用。看來onCreate()是setContentView()等的正確位置。另一方面,onCreate正在初始化可能未使用有效服務引用的處理程序。如何保證服務引用對UI處理程序方法有效。或者,這是不是完全不使用服務引用的好理由?這裏最好的做法是什麼?Android活動到服務連接

回答

3

您必須通知活動該服務已準備就緒。

最簡單的方法是設置一個標誌,例如serviceAvailable = true,在ServiceConnection.onServiceConnected()中。然後每次你需要服務時你都檢查這個標誌。

+0

確定。服務有像startActivityForResult()這樣的接口嗎?可以用作界面。 – Androider 2011-02-25 23:17:25

+0

不可以。但是,如果您需要從Service到Activity進行通信,最簡單的方法就是使用Broadcasts:http://developer.android.com/guide/appendix/faq/commontasks.html#broadcastreceivers – 2011-02-25 23:39:39

0

在UI事件監聽器,你可以檢查服務是否引用是使用它之前空:

if (service != null) 
{ 
    service.getValue(); 
}