1
我正在使用XMPP協議和Smack庫實現聊天應用程序。如何保持與Smack XMPP的連接活躍?
我正在連接服務器內的服務器。一切正常,發送和接收消息,直到一段時間過去,操作系統殺死應用程序。
我怎樣才能始終保持與服務器的連接?
我正在使用XMPP協議和Smack庫實現聊天應用程序。如何保持與Smack XMPP的連接活躍?
我正在連接服務器內的服務器。一切正常,發送和接收消息,直到一段時間過去,操作系統殺死應用程序。
我怎樣才能始終保持與服務器的連接?
現在最好的選擇是使用BroadcastReceiver
來監聽連接更改,如果尚未連接,請連接XMPPTCPConnection
。
可以實現這樣說:
1)上註冊ConnectivityManager.CONNECTIVITY_ACTION
2的廣播接收器),然後實現onReceive()
:
@Override
public void onReceive(Context context, Intent intent) {
if(!isInitialStickyBroadcast()) {
Bundle extras = intent.getExtras();
if(extras != null) {
if(!extras.getBoolean(ConnectivityManager.EXTRA_NO_CONNECTIVITY)) {
// call reconnection code!
}
}
}
}
結帳this答案通過咂嘴開發商。 雖然此問題已在問題跟蹤器中標記爲已解決,但我仍然在使用ReconnectionManager
遇到問題。
此外,即使您的應用程序未在前臺運行時仍然保持連接狀態將不可行,因爲從Android O開始,後臺進程將受到很多限制。此外,它也將耗盡大量電池。 處理它的最佳方法是從服務器發送推送通知。