广播接收器,用于使用 Openfire 在 Smack 中传入聊天消息



我正在通过XMPP协议使用openfire sever使用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.

但是现在,如果我的服务正在运行并且连接丢失。 我打开我的应用程序,将创建一个新连接。此连接由应用程序而不是服务创建。所以现在当我不在我的应用程序中时,我没有收到任何传入消息的通知,因为传入消息是通过服务连接传入的

现在我参与其中。 请专家帮助我。我该如何解决?

有没有办法在开火中推送通知?

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

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

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

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

与服务通信的另一种方式是通过意图。创建活动时向服务发送意图,并让服务中的广播接收器调用 connect();

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

詹姆斯

最新更新