1

我(有点)是 android 开发的新手,我想创建一个基于 PircBot 库的 android messenger 应用程序。我现在知道有几个限制:

  • 必须使用 IRC,现在可能无法更改,因为它已经在要求中
  • IRC 服务需要在自己的进程中运行,因此它在收听 IRC 消息时不会干扰 UI,它应该在后台接收消息并发送通知而不显示 UI
  • 我在不同的屏幕上使用不同的活动,所以所有活动都需要使用服务(登录、加入频道、发送/接收消息),并且应该根据当前的连接状态通知不同的活动。

我试图从我的活动中绑定服务,但活页夹似乎只适用于同一进程中的服务。(我不确定这个,搜索没有返回任何有用的东西)

构建我的项目以便满足所有约束的首选方法是什么?我还可能遇到什么其他问题?

抱歉英语不好

4

1 回答 1

3

IRC 服务需要在自己的进程中运行,因此在收听 IRC 时不会干扰 UI

我看不出 IRC 服务需要在自己的进程中运行的任何原因。根据定义,服务是不与用户交互的元素,如文档中所述:

服务是一个应用程序组件,代表应用程序希望在不与用户交互的情况下执行更长时间运行的操作,或提供功能供其他应用程序使用。

而且,正如您所说,通过使该服务在其自己的进程中运行,就无法绑定到它(实际上,此时您需要进行IPC 通信)。


我在不同的屏幕上使用不同的活动,所以所有活动都需要使用服务(登录、加入频道、发送/接收消息),并且应该根据当前的连接状态通知不同的活动。

为了满足这个要求,您可以简单地使用LocalBroadcastManager将信息从服务共享到所有活动。您的活动可以为他们希望听到的事件(connectionStateChange、MessageReceived 等)设置广播接收器,并采取相应的行动。


最后,因为阅读其他人的代码总是一个好主意,请查看这两个相似的项目,它们是由您友好的搜索引擎提供给您的:

于 2013-06-15T23:03:14.370 回答