在Android中实现发布/订阅

时间:2014-03-14 14:30:56

标签: java android publish-subscribe

目前,我正在为Android设备开发可扩展的传感和数据处理框架。该框架将通过Android移动设备实现各种数据信号(例如,位置,wifi,电池,加速度计)。

我认为这些数据信号是发布数据的发布者。扩展Activity(public class MainActivity extends Activity)的类是订阅者。

我认为实现此功能的理想方式是在发布者和订阅者之间实现小型发布/订阅中间件。

你能否建议 - 如何在Android设备上实现发布/订阅中间件?对我来说,主要问题是 - MainActivity类如何注册自己获取事件以及各种数据信号如何通知许多已登记的MainActivity班级?请注意,此中间件不需要通过网络进行通信等高级功能。

2 个答案:

答案 0 :(得分:5)

有人为你做了http://square.github.io/otto/。使用此框架或检查源代码。

答案 1 :(得分:0)

以这种方式思考一个例子:

  • SomeFragmentA - 此片段定义了一个包含方法的接口
  • SomeFragmentB - 这也定义了一个包含方法的接口
  • MainActivity - 此活动注册上述片段的更新
  • 现在,活动将通过简单地从这两个片段实现接口并做任何想做的事情来监听事件。

在这种情况下,当片段发布任何新内容时,它会通过调用其方法来执行此操作,并根据需要传回参数。

try{
   ((YourInterFaceListetener) activity).someMethod(arguments);
}catch(ClassCastException cce){
   Log.d(cce.getMessage());
}

这样做可以创建应用程序的其他部分与活动之间的轻松通信,您可以通过简单地实现所需的接口来扩展它。

祝你好运!