【发布时间】:2011-08-30 16:12:05
【问题描述】:
我目前正在编写一个应用程序,它由一个服务和一个活动组成。该服务在后台运行,进行一些实时音频处理。如果用户想要获取有关正在运行的服务的一些信息或想要更改服务的设置,则活动将启动并绑定到服务。
目前我正在使用异步信使系统在服务和活动之间进行通信。例如,服务可以通过消息向活动发送一些结果,活动可以处理此消息并显示结果。这很好用,但是为每次通信编写消息传递内容是有压力的。而且它并不总是需要的。有时我只想询问服务是否设置了标志。如果我这样做是异步的,我必须向服务发送一条消息,询问标志的值,然后服务必须向活动发送一条消息以回答请求。
所以我想要一些可以同步访问服务的 getter 和 setter。这可以通过使用活页夹来完成,该活页夹也可以。
问题是,我有时需要同步通信来获取标志等的值,有时我需要异步通信来将结果从服务推送到活动。所以我需要的是一个活页夹和一个信使。但我不知道如何做到这一点,因为服务只能从 onBind() 方法返回一个对象,要么是 binder 对象,要么是 messenger 对象。
您有什么建议可以做到这一点,或者有什么其他方法来实现活动和服务之间的异步和同步通信?
提前致谢!
托比亚斯
【问题讨论】:
标签: android