在我的聊天应用程序中,我希望当此人不在聊天屏幕上时,他应该收到通知,而当此人不在聊天屏幕上时,他不应该收到任何通知(聊天应该简单地显示在聊天屏幕上)。
当这个人在聊天屏幕上时,我强行改变用户的状态并广播它。现在这里的问题是,当用户现在将收到任何消息/聊天时,用户设备上运行的服务将如何决定移动用户本身的存在(即他是否在聊天屏幕上)。我认为不可能让用户本身出现(在名册的帮助下,因为用户本身没有在他的名册中列出)
这个函数写在我的服务类中
PacketFilter filter = new MessageTypeFilter(Message.Type.chat);
final PacketCollector collector = connection.createPacketCollector(filter);
connection.addPacketListener(new PacketListener() {
@Override
public void processPacket(Packet packet) {
// TODO Auto-generated method stub
//notification(packet.getFrom());
packet = collector.nextResult();
Message message = (Message)packet;
senderName = packet.getFrom();
int alphaPOS = senderName.indexOf("@");
String subSenderName = senderName.substring(0,alphaPOS);
notificationforChat(subSenderName+": "+message.getBody(),packet.getFrom().toString());
}
}, filter);
现在当用户在聊天屏幕上时如何停止通知???
请帮我