在Android中创建信使

时间:2013-06-15 21:27:14

标签: java android irc

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

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

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

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

抱歉英文不好

1 个答案:

答案 0 :(得分:3)

  

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

我没有看到为什么IRC服务需要在自己的进程中运行的任何理由。根据定义,服务是一个不与用户交互的元素,如docs中所述:

  

服务是表示一个的应用程序组件   应用程序希望执行更长时间运行的操作而不是   与用户交互或为其他人提供功能   要使用的应用程序。

而且,正如你所说,通过使这个服务在自己的进程中运行,bind就不可能了(事实上,那时你需要做IPC communication)。


  

我正在为不同的屏幕使用不同的活动,以便所有活动   将需要使用该服务(登录,加入频道,发送/接收   消息)和不同的活动应该基于   当前的连接状态。

要满足此要求,您只需使用LocalBroadcastManager即可将服务中的信息共享给所有活动。您的活动可以为他们希望听到的事件(connectionStateChange,MessageReceived等)提供BroadcastReceivers,并且会相应地采取行动。


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