0

我正在通过 XMPP 协议使用 openfire 服务器创建一个使用 smack 的聊天应用程序。我可以与其他用户聊天并且工作良好。我在服务类中创建了连接。因此,当我不在我的应用程序中时,我能够收到通知消息,但是当网络问题、网络更改、网络速度慢等时,我的服务一次又一次地重新启动。所以我的连接丢失了。并且用户并不总是能够聊天。

所以我解决了连接问题。就像

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中推送通知?

4

1 回答 1

1

您可以尝试绑定到您的服务;

  • 在您的服务中创建一个名为 connect() 的方法

  • 当应用程序启动而不是在活动类中创建连接对象时,绑定到服务,调用 myServcie.connect();

  • 这样连接仍然归服务所有,

与服务通信的其他方式是通过意图....在创建活动时向服务发送意图并让服务中的广播接收器调用 connect();

需要注意的一件事是不建议在移动环境中不断重新连接......电池寿命就是这样。您可以检查应用程序包是否是正在显示的应用程序包,如果是则重新连接等。

詹姆士

于 2013-09-20T02:02:47.917 回答