作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在为 Android XMPP 集成使用 asmack api...
在 xmpp 连接认证成功后,我已经使用 PacketListener 进行传入消息通知。
我的应用程序是基于选项卡的应用程序。当我通过点击 friend 列表进入聊天 Activity 时,我的数据包监听器被添加到 OnCreate 方法中的连接。
问题是我移动到此屏幕的次数越多,听众的数量就越多,而且我多次收到相同的消息。
这个问题有什么解决方案吗?
PacketFilter filter = new MessageTypeFilter(Message.Type.chat);
PacketListener pListener = new PacketListener() {
public void processPacket(Packet packet) {
Message message = (Message) packet;
if (message.getBody() != null) {
String fromName = StringUtils.parseBareAddress(message
.getFrom());
Log.i("XMPPClient", "Got text [" + message.getBody()
+ "] from [" + fromName + "]");
messages.add(fromName + ":");
messages.add(message.getBody());
// Add the incoming message to the list view
mHandler.post(new Runnable() {
public void run() {
setListAdapter();
}
});
}
}
};
connection.addPacketListener(pListener, filter);
最佳答案
@维沙尔。您不应该在您的任何 Activity 文件中添加此监听器,只需将这些监听器添加到您的 Android 服务中,该服务应始终以单个实例运行。
谢谢
关于android - XMPP : Asmack Connection PacketListener Issue. ..,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5853945/
我需要一个解决方案,如何从服务变量更改 UI,我正在监听来自服务的聊天消息,我知道如何将消息转换为字符串,但我不知道如何将它们发送到 UI 或另一个 Activity ,这是我的服务: public
我正在为 Android XMPP 集成使用 asmack api... 在 xmpp 连接认证成功后,我已经使用 PacketListener 进行传入消息通知。 我的应用程序是基于选项卡的应用程序
我是一名优秀的程序员,十分优秀!