2

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

我的问题是:怎么做?我应该有自己的流程服务吗?我应该为监听器启动一个 AsyncTask 吗?还是有更好的方法来做到这一点?如果我使用新的服务流程,是否需要使用 AIDL?

4

1 回答 1

2

怎么做?

让您的聊天服务器使用 GCM将聊天消息推送到设备。

我应该有自己的流程服务吗?

不。

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

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

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

我应该为监听器启动一个 AsyncTask 吗?

可能不是。

还是有更好的方法来做到这一点?

让您的聊天服务器使用 GCM将聊天消息推送到设备。

或者,可能,将您的聊天服务器更改为在排队模型上工作,以便您可以定期轮询(在用户可配置的时间间隔内)以获取可用消息。

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

不。

于 2013-01-12T17:53:46.777 回答