我正在为Android编写一个小型聊天客户端。所以我想要的行为是,我的应用程序正在后台监听新消息,并在通知区域显示它们(只有我的应用程序的图标)。收听传入的消息应该是一个非常长期的事情 - 可能在关闭ui线程后的几天内
我的问题是:怎么做?我应该使用自己的流程提供服务吗?我应该为Listener启动AsyncTask吗?或者还有更好的方法吗?如果我使用新的服务流程,我是否需要使用AIDL?
答案 0 :(得分:2)
怎么做?
让聊天服务器use GCM将聊天消息发送到设备。
我是否应该使用自己的流程提供服务?
没有
首先,它不需要在自己的过程中。
其次,这将要求您始终保持服务运行,这是许多用户不喜欢的。
第三,这将要求您始终在WiFi无线电开机的情况下始终保持设备通电,用户不会欣赏。例外情况:如果您在支持移动数据的设备(例如手机)上运行,并且非常小心,则可以在设备处于睡眠状态时维持与服务器的开放套接字连接。这很难正常工作。
我应该为Listener启动AsyncTask吗?
可能不是。
还是有更好的方法吗?
让聊天服务器use GCM将聊天消息发送到设备。
或者,可能更改聊天服务器以处理排队模型,因此您可以定期轮询(在用户可配置的时间间隔内)以获取可用消息。
如果我使用新的服务流程,我是否需要使用AIDL?
没有