我的聊天应用程序具有以下方法:
这个想法是,当登录的用户断开与Internet的连接时,其状态仍为1。此外,如果用户删除了该应用程序,则其状态仍为1。
是否存在代码或方法来检测用户在删除/删除应用后上次上网的时间?许多删除了该应用程序的用户仍然具有在线状态。
最佳答案
在Activity,onStart()
和onResume()
中,您可以通过以下方式将在线状态消息发送到服务器:
但是问题是如果应用程序出现在前台,互联网停止或用户卸载了该应用程序,将会发生什么?
您的服务器仍将只有在线状态才能显示最后一次状态。解决它的一种方法是使用MQTT。
在
Activity
,onStart()
和onResume()
中,将在线状态消息分别作为1、0发送给代理。建立mqtt连接时,设置最后一个will消息: MqttConnectOptions options = new MqttConnectOptions();
options.setConnectionTimeout(60);
options.setWill(STATUS, ("PASS_OFFLINE_STATUS_OF_USER").getBytes(), 0, true);
client.setCallback(ApplozicMqttService.this);
client.connect(options);
来源: https://github.com/AppLozic/Applozic-Android-SDK/blob/b7337f8d43c9e4df8927c77b34903c7762670cbf/mobicomkit/src/main/java/com/applozic/mobicomkit/api/ApplozicMqttService.java
MQTT中使用了最后一个消息,以通知其他客户端有关客户端断开连接的信息。
在此处了解更多信息:
http://www.hivemq.com/blog/mqtt-essentials-part-9-last-will-and-testament
关于android - 如何知道应用程序用户是否离线?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35947316/