【问题标题】:How to listen for new chat messages on Android?如何在 Android 上收听新的聊天消息?
【发布时间】:2013-01-12 16:55:16
【问题描述】:

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

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

【问题讨论】:

    标签: android multithreading background task aidl


    【解决方案1】:

    怎么做?

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

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

    没有。

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

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

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

    我应该为 Listener 启动一个 AsyncTask 吗?

    可能不会。

    或者有更好的方法吗?

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

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

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

    没有。

    【讨论】:

    • 谢谢 :) 看起来很有趣,但我需要使用 XMPP。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-12
    • 2020-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多