Android活动到服务连接

时间:2011-02-25 22:57:06

标签: android binding service android-activity

活动上有处理程序方法,例如各种UI事件的onClick。如何保证这些方法的服务连接存在?服务连接具有onServiceConnected方法,用于在服务连接后进行初始化。然而,这似乎不是UI初始化的最佳位置。我想避免onClick(View v){service.getValue()}成为一个空服务引用。另一方面,我不希望UI呈现依赖于等待服务引用。似乎onCreate()是setContentView()等的正确位置。另一方面onCreate正在初始化可能尚未使用有效服务引用的处理程序。如何保证服务引用对UI处理程序方法有效。或者这是不使用服务引用的好理由?什么是最好的做法?

2 个答案:

答案 0 :(得分:3)

您必须向活动发出信号,表明服务准备就绪。

最简单的方法是设置一个标志,例如serviceAvailable = true,在ServiceConnection.onServiceConnected()中。然后,每当您需要服务时,请检查此标志。

答案 1 :(得分:0)

在UI事件侦听器中,您可以在使用它之前检查服务引用是否为null:

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