我有这个基本设计:
蓝牙服务将从蓝牙连接的设备读取和缓冲实时数据。足够快的数据(100到1000 sps)足以让我认为使用Intents或广播是不现实的
子活动只是以不同的方式显示相同的接收数据。 每个子活动也将使用户以不同的方式与数据交互。
我愿意'注册'一堆“目的地”(这实际上就是活动),“熟”的数据将被发送到。我没有完全了解如何“注册”开始活动的任何事情。
如何将对我的服务的引用传递给每个活动?或者它可能是另一种方式;如何将每个活动注册到正在运行的服务。
拥有C / C ++背景,我意识到这可能不是Java中的好方法。 谢谢。
答案 0 :(得分:3)
理想情况下,这不是接近它的最佳方式。特别是android是一个系统,它的服务基于通过从活动到活动,活动到服务,从服务到服务的意图传递信息。
我接近这个问题的方法将涉及在手机上安装一个与服务通信的应用程序。特别是应用程序将从服务接收数据。然而;为了让活动能够收听它,您可以让服务广播一条消息,说明有新信息,并让此活动拦截它。当服务构建此消息时,您可以通过意图(额外)将信息传递给活动。该活动内部将有一个广播监听器,专门更新该活动内与该服务相关的信息。
也许为了防止信息丢失,将消息放入堆栈并相应地读取它直到它为空(这假设你得到大量的信息)
这些链接应该有帮助
广播接收器
http://thinkandroid.wordpress.com/2010/02/02/custom-intents-and-broadcasting-with-receivers/
<强>服务强>
http://developer.android.com/reference/android/app/Service.html