1

我正在制作一个具有 Activity 的应用程序,该应用程序与单个服务通信,并用于启动、停止或更改该服务的设置。我使用了这个技巧中的单例方法。

我的问题是忙等待对我不起作用,我无法将侦听器附加到服务,因为活动被阻止。我希望服务在应用程序启动时启动或获取它的当前实例,所以我将忙等待放在 onCreate 中。我猜我这样做非常错误,那么我该如何正确地做到这一点?

此外,如果有更好的方法,请发布任何链接或指南,因为我在 android 开发者网站上感到困惑:P

谢谢!

4

2 回答 2

2

我使用了这个技巧中的单例方法。

不要那样做。改用bindService()和本地绑定模式,当服务准备好时你会收到通知。您还可以访问该服务发布的 API,并在绑定后开始使用它。

于 2010-11-02T13:16:55.703 回答
1

问题是程序与事件驱动编程之一,android 的 UI 是建立在后者之上的。

onCreate 是一个事件。服务连接的通知也是一个事件。在您从 onCreate 返回之前,您不会收到服务连接通知(即使它已经发生)。

您能否将您的活动启动分为两部分,第一部分在 onCreate 中完成,第二部分在响应服务连接时完成?

于 2010-11-02T13:01:46.130 回答