首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Android中通信两个服务?

如何在Android中通信两个服务?
EN

Stack Overflow用户
提问于 2019-07-08 08:11:32
回答 1查看 58关注 0票数 0

我正在构建一个应用程序来收集从蓝牙le接收到的感官数据。此外,我需要收集从安装的GPS传感器智能手机位置。为了达到这个目的,我做了三个服务:

  1. 首先从蓝牙中检索感官数据
  2. 获得gps定位的第二步
  3. 第三,前台服务是从上述服务收集数据,并将收集到的数据保存到外部存储中的前台服务。

目前,我正在使用广播接收器在服务之间发送数据,但我知道这是一个糟糕的解决方案。实现服务间通信的最佳实践是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-01 11:42:36

您可以简单地使用EventBus库:

代码语言:javascript
复制
//1. Define a java class that represents your event:
public static class MessageEvent {
    /* Additional fields if needed */ 
}

//2.Post events at your origin like as below and receive them in destination (@Subscribe methods):
EventBus.getDefault().post(new MessageEvent());

//3.Prepare subscribers in destinations: Declare and annotate your subscribing method, optionally specify a thread mode:
@Subscribe(threadMode = ThreadMode.MAIN)  
public void onMessageEvent(MessageEvent event) {
    /* Do something */
};

//4.Register and unregister your subscriber in the destination, according to your component (here service class) life cycle:
@Override
public void onCreate() {
    super.onCreate();
    EventBus.getDefault().register(this);
}
@Override
public void onDestroy() {
    EventBus.getDefault().unregister(this);
    super.onDestroy();
}

希望这能帮到你。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56930811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档