在本地服务与线程和活动之间同步

Hen*_*rik 4 service multithreading android

我正试图想办法如何在本地服务和主要活动之间进行同步.

当地的服务有,

  • 具有套接字连接的线程,可以随时接收数据.
  • 包含数据的列表/数组.
  • 套接字可以随时接收数据并将其添加到列表中.

活动需要显示此数据.因此,当活动启动时,它需要附加或启动本地服务并获取列表.如果列表已更新,还需要通知它.

我想我需要以某种方式同步我的列表,以便当活动在连接到服务时获取列表时,本地服务不会向其添加新条目.

有任何想法吗?

谢谢.

Jan*_*usz 5

在这里回答了一个类似的问题.在这个答案中,有一个链接到标记brady在柏林的droidconf上的演示文稿.在他的幻灯片中,他描述了一个管理这类事物的框架.他还在github上提供了这个来源.

他提出了以下解决方案.构建一个存在于自定义应用程序类范围内的控制器对象.控制器启动服务或简单的工作线程,并通知UI服务是否通知某些内容发生了变化.如果不是绝对必要,他建议不要使用AIDL.

android文档还提供了有关如何启动本地进程的示例.