如何在Android上收听新的聊天消息?

时间:2013-01-12 16:55:16

标签: android multithreading background task aidl

我正在为Android编写一个小型聊天客户端。所以我想要的行为是,我的应用程序正在后台监听新消息,并在通知区域显示它们(只有我的应用程序的图标)。收听传入的消息应该是一个非常长期的事情 - 可能在关闭ui线程后的几天内

我的问题是:怎么做?我应该使用自己的流程提供服务吗?我应该为Listener启动AsyncTask吗?或者还有更好的方法吗?如果我使用新的服务流程,我是否需要使用AIDL?

1 个答案:

答案 0 :(得分:2)

  

怎么做?

让聊天服务器use GCM将聊天消息发送到设备。

  

我是否应该使用自己的流程提供服务?

没有

首先,它不需要在自己的过程中。

其次,这将要求您始终保持服务运行,这是许多用户不喜欢的。

第三,这将要求您始终在WiFi无线电开机的情况下始终保持设备通电,用户不会欣赏。例外情况:如果您在支持移动数据的设备(例如手机)上运行,并且非常小心,则可以在设备处于睡眠状态时维持与服务器的开放套接字连接。这很难正常工作。

  

我应该为Listener启动AsyncTask吗?

可能不是。

  

还是有更好的方法吗?

让聊天服务器use GCM将聊天消息发送到设备。

或者,可能更改聊天服务器以处理排队模型,因此您可以定期轮询(在用户可配置的时间间隔内)以获取可用消息。

  

如果我使用新的服务流程,我是否需要使用AIDL?

没有