我正在通过XMPP协议使用openfire服务器创建一个聊天应用程序。我可以和其他用户聊天并且运作良好。我在Service类中创建了连接。 所以当我不在我的应用程序中时,我能够收到通知消息但是我的服务是在网络问题,网络更改,网络速度等等时一次又一次地重新启动。所以我的连接丢失了。并且用户并不总是能够聊天。
所以我解决了连接问题。像是
if( service is not runing)
start my service
else
if(connection is NULL or not Connected)
reconnection . so my connection is created
我的服务类: -
if(connection is NULL or not connected)
reconnect. so my connection is created
else
not connected.
但是现在如果我的服务正在运行并且连接丢失了。我打开我的应用程序,创建一个新的连接。此连接由应用程序而非服务创建。所以现在,当我不在我的应用程序中时,我没有收到任何有关传入消息的通知,因为传入消息是通过服务连接来的。
现在我参与了。请高手帮帮我。我怎么解决?
在openfire中有推送通知的方法吗?
答案 0 :(得分:1)
您可以尝试绑定到您的服务;
在您的服务中创建名为connect()
启动应用程序而不是在活动类中创建连接对象时,绑定到服务,调用myServcie.connect();
这样连接仍由服务
与服务进行通信的其他方式是通过意图....在创建活动时向服务发送意图并在服务调用中使用BroadcastReceiver connect();
有一点需要注意的是不建议在移动环境中不断重新连接....电池寿命就是这样。您可以检查应用程序包是否正在显示,然后重新连接(如果是等等)
詹姆斯